import type { PairingCliChannel } from './pairing-channel.js';
export type IssuePairingChallengeParams = {
    channel: PairingCliChannel;
    pairingFilePath: string;
    accountId: string;
    senderId: string;
    senderIdLine: string;
    meta?: Record<string, string | undefined | null>;
    sendPairingReply: (text: string) => Promise<void>;
    buildReplyText?: (p: {
        code: string;
        senderIdLine: string;
    }) => string;
    onCreated?: (p: {
        code: string;
    }) => void;
    onReplyError?: (err: unknown) => void;
};
/**
 * OpenClaw-style pairing: mint or refresh a pending code; notify the user only on new codes.
 * Repeat DMs refresh lastSeenAt and broadcast SSE without re-sending the bot message.
 */
export declare function issuePairingChallenge(params: IssuePairingChallengeParams): Promise<{
    created: boolean;
    code?: string;
}>;
