import { SdkClient } from "../common/sdk-client";
import { TimeSeriesModels } from "./iot-timeseries-models";
/**
 * Store and query time series data with a precision of 1 millisecond.
 *
 * @export
 * @class TimeSeriesClient
 * @extends {SdkClient}
 */
export declare class TimeSeriesClient extends SdkClient {
    private _baseUrl;
    /**
     * Read time series data for a single entity and propertyset. Returns data for a specified time range. Returns the latest value if no range is provided.
     *
     * @param {string} entity
     * @param {string} propertysetname
     * @param {{ from?: Date; to?: Date; limit?: number; select?: string; sort?: string }} [optional]
     * @returns {Promise<TimeSeriesModels.Timeseries[]>}
     *
     * @memberOf TimeSeriesClient
     */
    GetTimeSeries(entity: string, propertysetname: string, optional?: {
        from?: Date;
        to?: Date;
        limit?: number;
        select?: string;
        sort?: string;
    }): Promise<TimeSeriesModels.Timeseries[]>;
    /**
     * Returns the data bulk style.
     *
     * ! This is necessary as bulk data upload has a bug with links and limits in December 2019
     *
     * @param {string} entity
     * @param {string} propertysetname
     * @param {{
     *       from?: Date;
     *       to?: Date;
     *       limit?: number;
     *       select?: string;
     *       sort?: string;
     *     }} [optional]
     * @returns {Promise<TimeSeriesModels.BulkTimeseries>}
     *
     * @memberOf TimeSeriesClient
     */
    GetTimeSeriesBulkStyle(entity: string, propertysetname: string, optional?: {
        from?: Date;
        to?: Date;
        limit?: number;
        select?: string;
        sort?: string;
    }): Promise<TimeSeriesModels.BulkTimeseries>;
    GetNextRecordsBulkStyle(url: string): Promise<TimeSeriesModels.BulkTimeseries>;
    /**

    /**
     * Write or update time series data for a single entity and propertyset. Existing time series data is overwritten. Data for all properties within a propertyset needs to be provided together.
     *
     * @param {string} entity
     * @param {string} propertysetname
     * @param {TimeSeriesModels.Timeseries[]} timeseries
     * @returns
     *
     * @memberOf TimeSeriesClient
     */
    PutTimeSeries(entity: string, propertysetname: string, timeseries: TimeSeriesModels.Timeseries[]): Promise<Object | undefined>;
    /**
     * Delete time series data for a single entity and propertyset within a given time range.
     * Data for all properties within a propertyset is deleted.
     *
     * @param {string} entity
     * @param {string} propertysetname
     * @param {Date} from
     * @param {Date} to
     * @returns
     *
     * @memberOf TimeSeriesClient
     */
    DeleteTimeSeries(entity: string, propertysetname: string, from: Date, to: Date): Promise<Object | undefined>;
}
