/**
 * @template T
 */
export class TimeSeries<T> {
    /**
     *
     * @param {Object<BinaryDataType>} schema
     * @param {string} [time_column_name]
     */
    constructor(schema: any, time_column_name?: string);
    /**
     * @type {RowFirstTableSpec}
     */
    spec: RowFirstTableSpec;
    /**
     * @type {RowFirstTable}
     */
    table: RowFirstTable;
    time_column_index: number;
    /**
     *
     * @param {number} index
     * @returns {Object}
     */
    getSampleObjectByIndex(index: number): any;
    /**
     *
     * @returns {number}
     */
    get sample_count(): number;
    /**
     *
     * @returns {number}
     */
    get last_timestamp(): number;
    /**
     *
     * @param {number[]} data
     */
    validateNextSample(data: number[]): void;
    /**
     *
     * @param {number[]} data
     */
    addSample(data: number[]): void;
    /**
     *
     * @param {Object} sample
     */
    addObjectSample(sample: any): void;
    /**
     *
     * @param {number[]} result
     * @param {number} index
     */
    getSampleByIndex(result: number[], index: number): void;
    /**
     *
     * @param {number} time
     * @returns {number}
     */
    findLowSampleIndexByTime(time: number): number;
    /**
     *
     * @param {number[]} result
     * @param {number} result_offset
     * @param {number} time
     */
    sampleLinear(result: number[], result_offset: number, time: number): void;
    /**
     * Get linearly interpolated sample for given time in object form, following supplied schema
     * @param {number} time
     * @returns {Object}
     */
    sampleObjectLinear(time: number): any;
    #private;
}
import { RowFirstTableSpec } from "../../../core/collection/table/RowFirstTableSpec.js";
import { RowFirstTable } from "../../../core/collection/table/RowFirstTable.js";
//# sourceMappingURL=TimeSeries.d.ts.map