///
import { CommandParser } from "@redis/client/dist/lib/client/parser";
import { TsIgnoreOptions } from "./ADD";
import { ArrayReply, BlobStringReply, DoubleReply, MapReply, NullReply, NumberReply, ReplyUnion, RespType, TuplesReply, TypeMapping, UnwrapReply } from "@redis/client/dist/lib/RESP/types";
import { RedisVariadicArgument } from "@redis/client/dist/lib/commands/generic-transformers";
export declare function parseIgnoreArgument(parser: CommandParser, ignore?: TsIgnoreOptions): void;
export declare function parseRetentionArgument(parser: CommandParser, retention?: number): void;
export declare const TIME_SERIES_ENCODING: {
readonly COMPRESSED: "COMPRESSED";
readonly UNCOMPRESSED: "UNCOMPRESSED";
};
export type TimeSeriesEncoding = typeof TIME_SERIES_ENCODING[keyof typeof TIME_SERIES_ENCODING];
export declare function parseEncodingArgument(parser: CommandParser, encoding?: TimeSeriesEncoding): void;
export declare function parseChunkSizeArgument(parser: CommandParser, chunkSize?: number): void;
export declare const TIME_SERIES_DUPLICATE_POLICIES: {
readonly BLOCK: "BLOCK";
readonly FIRST: "FIRST";
readonly LAST: "LAST";
readonly MIN: "MIN";
readonly MAX: "MAX";
readonly SUM: "SUM";
};
export type TimeSeriesDuplicatePolicies = typeof TIME_SERIES_DUPLICATE_POLICIES[keyof typeof TIME_SERIES_DUPLICATE_POLICIES];
export declare function parseDuplicatePolicy(parser: CommandParser, duplicatePolicy?: TimeSeriesDuplicatePolicies): void;
export type Timestamp = number | Date | string;
export declare function transformTimestampArgument(timestamp: Timestamp): string;
export type Labels = {
[label: string]: string;
};
export declare function parseLabelsArgument(parser: CommandParser, labels?: Labels): void;
export type SampleRawReply = TuplesReply<[timestamp: NumberReply, value: DoubleReply]>;
export declare const transformSampleReply: {
2(reply: RespType<42, [NumberReply, BlobStringReply], never, [NumberReply, BlobStringReply]>): {
timestamp: NumberReply;
value: number;
};
3(reply: SampleRawReply): {
timestamp: NumberReply;
value: DoubleReply;
};
};
export type SamplesRawReply = ArrayReply;
export declare const transformSamplesReply: {
2(reply: RespType<42, RespType<42, [NumberReply, BlobStringReply], never, [NumberReply, BlobStringReply]>[], never, RespType<42, [NumberReply, BlobStringReply], never, [NumberReply, BlobStringReply]>[]>): {
timestamp: NumberReply;
value: number;
}[];
3(reply: SamplesRawReply): {
timestamp: NumberReply;
value: DoubleReply;
}[];
};
export declare function resp2MapToValue]>, TRANSFORMED>(wrappedReply: ArrayReply, parseFunc: (rawValue: UnwrapReply) => TRANSFORMED, typeMapping?: TypeMapping): MapReply;
export declare function resp3MapToValue, // TODO: simplify types
TRANSFORMED>(wrappedReply: MapReply, parseFunc: (rawValue: UnwrapReply) => TRANSFORMED): MapReply;
export declare function parseSelectedLabelsArguments(parser: CommandParser, selectedLabels: RedisVariadicArgument): void;
export type RawLabelValue = BlobStringReply | NullReply;
export type RawLabels = ArrayReply>;
export declare function transformRESP2Labels(labels: RawLabels, typeMapping?: TypeMapping): MapReply;
export declare function transformRESP2LabelsWithSources(labels: RawLabels, typeMapping?: TypeMapping): {
labels: MapReply, T>;
sources: string[] | Buffer[];
};
//# sourceMappingURL=helpers.d.ts.map