import { CommandParser } from '@redis/client/dist/lib/client/parser';
import { ArrayReply, BlobStringReply, Resp2Reply, MapReply, TuplesReply, TypeMapping, RedisArgument } from '@redis/client/dist/lib/RESP/types';
import { RedisVariadicArgument } from '@redis/client/dist/lib/commands/generic-transformers';
import { MultiAggregationSampleRawReply, Timestamp } from './helpers';
import { TsRangeMultiAggrOptions } from './RANGE_MULTIAGGR';
export type TsMRangeWithLabelsMultiRawReply2 = ArrayReply<TuplesReply<[
    key: BlobStringReply,
    labels: ArrayReply<TuplesReply<[
        label: BlobStringReply,
        value: BlobStringReply
    ]>>,
    samples: ArrayReply<Resp2Reply<MultiAggregationSampleRawReply>>
]>>;
export type TsMRangeWithLabelsMultiRawReply3 = MapReply<BlobStringReply, TuplesReply<[
    labels: MapReply<BlobStringReply, BlobStringReply>,
    metadata: never,
    samples: ArrayReply<MultiAggregationSampleRawReply>
]>>;
/**
 * Creates a function that parses arguments for multi-range commands with labels and multiple aggregators
 * @param command - The command name to use (TS.MRANGE or TS.MREVRANGE)
 */
export declare function createTransformMRangeWithLabelsMultiArguments(command: RedisArgument): (parser: CommandParser, fromTimestamp: Timestamp, toTimestamp: Timestamp, filter: RedisVariadicArgument, options: TsRangeMultiAggrOptions) => void;
declare const _default: {
    readonly NOT_KEYED_COMMAND: true;
    readonly IS_READ_ONLY: true;
    readonly parseCommand: (parser: CommandParser, fromTimestamp: Timestamp, toTimestamp: Timestamp, filter: RedisVariadicArgument, options: TsRangeMultiAggrOptions) => void;
    readonly transformReply: {
        readonly 2: (this: void, reply: TsMRangeWithLabelsMultiRawReply2, _?: unknown, typeMapping?: TypeMapping) => MapReply<BlobStringReply<string>, {
            labels: Record<string, BlobStringReply<string>>;
            samples: {
                timestamp: import("@redis/client/dist/lib/RESP/types").NumberReply<number>;
                values: number[];
            }[];
        }>;
        readonly 3: (this: void, reply: TsMRangeWithLabelsMultiRawReply3) => MapReply<BlobStringReply<string>, {
            labels: MapReply<BlobStringReply<string>, BlobStringReply<string>>;
            samples: {
                timestamp: import("@redis/client/dist/lib/RESP/types").NumberReply<number>;
                values: import("@redis/client/dist/lib/RESP/types").DoubleReply<number>[];
            }[];
        }>;
    };
};
export default _default;
//# sourceMappingURL=MRANGE_WITHLABELS_MULTIAGGR.d.ts.map