import type * as Arrow from "apache-arrow";
/**
 * Series block containing timeseries for channels for a given timestamp.
 */
export declare class SeriesBlock {
    time_ms: number;
    time_ns: number;
    date: Date;
    data: {
        [channel: string]: number[];
    };
    channels: string[];
    /**
     * Creates a new SeriesBlock instance.
     *
     * @param time_ms - The GPS timestamp associated with this data, in miliseconds.
     * @param time_ns - The GPS timestamp associated with this data, in nanoseconds.
     * @param date - The corresponding UTC Date object
     * @param data - Mapping between channels and timeseries.
     * @param channels - Channel metadata associated with this data block.
     */
    constructor(time_ms: number, time_ns: number, date: Date, data: {
        [channel: string]: number[];
    }, channels: string[]);
    /**
     * Creates a SeriesBlock from an Apache Arrow RecordBatch.
     *
     * This method extracts time-series data from an Arrow batch, converting it
     * into a SeriesBlock format. It expects the batch to have a "time" column
     * and additional columns for each data channel.
     *
     * @param batch - Apache Arrow RecordBatch containing the time-series data
     * @returns A new SeriesBlock instance created from the batch data
     *
     * @example
     * ```typescript
     * const batch = // ... Arrow RecordBatch
     * const block = SeriesBlock.fromBatch(batch);
     * console.log(block.time_ms); // GPS time in milliseconds
     * console.log(block.channels); // Array of channel names
     * console.log(block.data['channel1']); // Data array for 'channel1'
     * ```
     */
    static fromBatch(batch: Arrow.RecordBatch): SeriesBlock;
}
/**
 * Join a sequence of SeriesBlock blocks into a single SeriesBlock.
 *
 * Each block after the first must start when the previous block ends
 * (matching timestamps as produced by sequential streaming). All blocks
 * must carry the same channel names in {@link SeriesBlock.data}.
 *
 * @param blocks - The timeseries blocks to concatenate
 * @returns The combined timeseries block starting at the first block's time
 */
export declare function concatenate(blocks: SeriesBlock[]): SeriesBlock;
