import { CommandParser } from '@redis/client/dist/lib/client/parser';
import { RedisArgument } from '@redis/client/dist/lib/RESP/types';
import { Timestamp, MultiAggregationSamplesRawReply } from './helpers';
import { TimeSeriesAggregationType } from './CREATERULE';
import { TimeSeriesBucketTimestamp } from './RANGE';
export type TimeSeriesAggregationTypeList = [TimeSeriesAggregationType, ...Array<TimeSeriesAggregationType>];
export interface TsRangeMultiAggrOptions {
    LATEST?: boolean;
    FILTER_BY_TS?: Array<Timestamp>;
    FILTER_BY_VALUE?: {
        min: number;
        max: number;
    };
    COUNT?: number;
    ALIGN?: Timestamp;
    AGGREGATION: {
        types: TimeSeriesAggregationTypeList;
        timeBucket: Timestamp;
        BUCKETTIMESTAMP?: TimeSeriesBucketTimestamp;
        EMPTY?: boolean;
    };
}
export declare function parseRangeMultiArguments(parser: CommandParser, fromTimestamp: Timestamp, toTimestamp: Timestamp, options: TsRangeMultiAggrOptions): void;
export declare function transformRangeMultiArguments(parser: CommandParser, key: RedisArgument, fromTimestamp: Timestamp, toTimestamp: Timestamp, options: TsRangeMultiAggrOptions): void;
declare const _default: {
    readonly IS_READ_ONLY: true;
    readonly parseCommand: (this: void, parser: CommandParser, key: RedisArgument, fromTimestamp: Timestamp, toTimestamp: Timestamp, options: TsRangeMultiAggrOptions) => void;
    readonly transformReply: {
        readonly 2: (this: void, reply: import("@redis/client/dist/lib/RESP/types").RespType<42, import("@redis/client/dist/lib/RESP/types").RespType<42, [import("@redis/client/dist/lib/RESP/types").NumberReply<number>, ...import("@redis/client/dist/lib/RESP/types").BlobStringReply<string>[]], never, [import("@redis/client/dist/lib/RESP/types").NumberReply<number>, ...import("@redis/client/dist/lib/RESP/types").BlobStringReply<string>[]]>[], never, import("@redis/client/dist/lib/RESP/types").RespType<42, [import("@redis/client/dist/lib/RESP/types").NumberReply<number>, ...import("@redis/client/dist/lib/RESP/types").BlobStringReply<string>[]], never, [import("@redis/client/dist/lib/RESP/types").NumberReply<number>, ...import("@redis/client/dist/lib/RESP/types").BlobStringReply<string>[]]>[]>) => {
            timestamp: import("@redis/client/dist/lib/RESP/types").NumberReply<number>;
            values: number[];
        }[];
        readonly 3: (this: void, reply: MultiAggregationSamplesRawReply) => {
            timestamp: import("@redis/client/dist/lib/RESP/types").NumberReply<number>;
            values: import("@redis/client/dist/lib/RESP/types").DoubleReply<number>[];
        }[];
    };
};
export default _default;
//# sourceMappingURL=RANGE_MULTIAGGR.d.ts.map