export declare const PAIRING_PENDING_TTL_MS: number;
export type PairingRequest = {
    id: string;
    code: string;
    createdAt: string;
    lastSeenAt: string;
    meta?: Record<string, string>;
};
/**
 * Create or refresh a pending pairing request for `id` (e.g. Telegram user id).
 * Returns `created: true` when a new code was minted (caller should notify the user).
 */
export declare function upsertPairingRequestSync(params: {
    pairingFilePath: string;
    id: string;
    accountId: string;
    meta?: Record<string, string | undefined | null>;
}): {
    code: string;
    created: boolean;
};
/**
 * Approve a pairing code: remove pending request and append sender id to allowFrom file.
 */
/** Non-expired pending requests; prunes expired entries from disk. */
export declare function listPendingPairingRequestsSync(pairingFilePath: string): PairingRequest[];
export declare function approvePairingCodeSync(params: {
    pairingFilePath: string;
    allowFromFilePath: string;
    code: string;
    /** When set, only requests tagged with this account id match. */
    accountId?: string;
}): {
    senderId: string;
} | null;
/** Approve a pending request by sender id (gateway-authenticated quick approve). */
export declare function approvePairingBySenderIdSync(params: {
    pairingFilePath: string;
    allowFromFilePath: string;
    senderId: string;
    accountId?: string;
}): {
    senderId: string;
} | null;
/** Remove a pending request without approving (admin dismiss). */
export declare function dismissPairingBySenderIdSync(params: {
    pairingFilePath: string;
    senderId: string;
    accountId?: string;
}): {
    senderId: string;
} | null;
