import { DeviceResponseType, IDevice } from "../Devices/IDevice";
import { ResponseResult } from "../FieldChangeResult";
import { IStatesHistoryService, StateHistoryErrorCode } from "./IStatesHistoryService";
import { AvailableState, AveragingStateValues, BrightnessHistory, DataRangeType, EnergyHistory, IAvailableStatePerChannel, StateDataResponse, StateInterval } from "./StatesHistory";
export declare class StatesHistoryService implements IStatesHistoryService {
    static readonly ServiceName: string;
    private DELIM;
    private _connection;
    constructor();
    numToCsv(val: number | string): string;
    quoteIfNeeded(field: string): string;
    ExportPressureToCsv(device: IDevice, channel: number, data: StateDataResponse<AveragingStateValues>): void;
    ExportBrightnessToCsv(device: IDevice, channel: number, data: StateDataResponse<BrightnessHistory>): void;
    ExportHumidityToCsv(device: IDevice, channel: number, data: StateDataResponse<AveragingStateValues>): void;
    ExportWindSpeedToCsv(device: IDevice, channel: number, data: StateDataResponse<AveragingStateValues>): void;
    ExportTemperatureToCsv(device: IDevice, channel: number, data: StateDataResponse<AveragingStateValues>): void;
    ExportAveragingStateValuesToCsv(device: IDevice, channel: number, data: StateDataResponse<AveragingStateValues>): string;
    ExportEnergyToCsv(device: IDevice, channel: number, response: StateDataResponse<EnergyHistory>): void;
    GetStatesByTimeRangeAsync<T>(deviceGuid: string, channel: number, responseType: DeviceResponseType, timeRange: DataRangeType, time: Date, limit: number, offset: number, orderByDesc?: boolean): Promise<StateDataResponse<T> | ResponseResult<StateHistoryErrorCode>>;
    GetStatesByTimeRangeAsync<T>(dev: IDevice, channel: number, responseType: DeviceResponseType, timeRange: DataRangeType, time: Date, limit: number, offset: number, orderByDesc?: boolean): Promise<StateDataResponse<T> | ResponseResult<StateHistoryErrorCode>>;
    GetServiceName(): string;
    DoesSupportPreciseTimeFramesAsync(): Promise<boolean>;
    GetStatesByIntervalAsync<T>(device: IDevice, channel: number, responseType: DeviceResponseType, stateFrom: StateInterval, limit: number, offset: number, orderByDesc?: boolean): Promise<StateDataResponse<T> | ResponseResult<StateHistoryErrorCode>>;
    GetStatesByIntervalAsync<T>(deviceGuid: string, channel: number, responseType: DeviceResponseType, stateFrom: StateInterval, limit: number, offset: number, orderByDesc?: boolean): Promise<StateDataResponse<T> | ResponseResult<StateHistoryErrorCode>>;
    GetAvailableStatesAsync(): Promise<ResponseResult<StateHistoryErrorCode> | AvailableState[]>;
    IsFunctionalitySupportedAsync(): Promise<boolean>;
    GetAvailableStatesPerChannelAsync(device: IDevice, channel: number): Promise<IAvailableStatePerChannel | ResponseResult<StateHistoryErrorCode>>;
    GetAvailableStatesPerChannelAsync(deviceGuid: string, channel: number): Promise<IAvailableStatePerChannel | ResponseResult<StateHistoryErrorCode>>;
}
