import { CommandParser } from "../client/parser"; import { NumberReply } from "../RESP/types"; import { MSetArguments } from "./MSET"; export declare const SetMode: { /** * Only set if all keys exist */ readonly XX: "XX"; /** * Only set if none of the keys exist */ readonly NX: "NX"; }; export type SetMode = (typeof SetMode)[keyof typeof SetMode]; export declare const ExpirationMode: { /** * Relative expiration (seconds) */ readonly EX: "EX"; /** * Relative expiration (milliseconds) */ readonly PX: "PX"; /** * Absolute expiration (Unix timestamp in seconds) */ readonly EXAT: "EXAT"; /** * Absolute expiration (Unix timestamp in milliseconds) */ readonly PXAT: "PXAT"; /** * Keep existing TTL */ readonly KEEPTTL: "KEEPTTL"; }; export type ExpirationMode = (typeof ExpirationMode)[keyof typeof ExpirationMode]; type SetConditionOption = typeof SetMode.XX | typeof SetMode.NX; type ExpirationOption = { type: typeof ExpirationMode.EX; value: number; } | { type: typeof ExpirationMode.PX; value: number; } | { type: typeof ExpirationMode.EXAT; value: number | Date; } | { type: typeof ExpirationMode.PXAT; value: number | Date; } | { type: typeof ExpirationMode.KEEPTTL; }; export declare function parseMSetExArguments(parser: CommandParser, keyValuePairs: MSetArguments): void; declare const _default: { /** * Constructs the MSETEX command. * * Atomically sets multiple string keys with a shared expiration in a single operation. * * @param parser - The command parser * @param keyValuePairs - Key-value pairs to set (array of tuples, flat array, or object) * @param options - Configuration for expiration and set modes * @see https://redis.io/commands/msetex/ */ readonly parseCommand: (this: void, parser: CommandParser, keyValuePairs: MSetArguments, options?: { expiration?: ExpirationOption; mode?: SetConditionOption; }) => void; readonly transformReply: () => NumberReply<0 | 1>; }; export default _default; //# sourceMappingURL=MSETEX.d.ts.map