import { Command, CommandOptions } from "./command.js";
export type ZAddCommandOptions = ({
    nx: true;
    xx?: never;
} | {
    nx?: never;
    xx: true;
} | {
    nx?: never;
    xx?: never;
}) & {
    ch?: true;
};
export type ZAddCommandOptionsWithIncr = ZAddCommandOptions & {
    incr: true;
};
export type ScoreMember<TData> = {
    score: number;
    member: TData;
};
/**
 * @see https://redis.io/commands/zadd
 */
export declare class ZAddCommand<TData = string> extends Command<number | null, number | null> {
    constructor(cmd: [
        key: string,
        scoreMember: ScoreMember<TData>,
        ...scoreMemberPairs: ScoreMember<TData>[]
    ], opts?: CommandOptions<number | null, number | null>);
    constructor(cmd: [
        key: string,
        opts: ZAddCommandOptions | ZAddCommandOptionsWithIncr,
        ...scoreMemberPairs: ScoreMember<TData>[]
    ], opts?: CommandOptions<number | null, number | null>);
}
