import { PAIRING_INVITE_TTL_MS, PAIR_TTL_MAX_MS, PAIR_TTL_MIN_MS } from "../vendor/protocol/outer/index.js"; export { PAIRING_INVITE_TTL_MS, PAIR_TTL_MAX_MS, PAIR_TTL_MIN_MS }; export declare const PAIRING_CODE_LENGTH = 8; export declare const PAIRING_CODE_PATTERN: RegExp; export declare function clampPairTtlMs(ttlMs: number): number; export type PairingInvite = Readonly<{ code: string; expiresAt: number; }>; export type CodeReservation = Readonly<{ code: string; ownerId: string; requestId: string; }>; export type CodeReservationResult = { status: "reserved"; reservation: CodeReservation; } | { status: "committed"; completion: T; } | { status: "expired" | "consumed" | "unknown"; }; export declare class QRSession { private active; generateCode(): string; issueCode(ttlMs?: number): PairingInvite; issueInvite(ttlMs?: number): PairingInvite; getActiveInvite(): PairingInvite | null; reserveCode(code: string, ownerId: string, requestId: string): CodeReservationResult; commitCode(reservation: CodeReservation, completion: T): boolean; releaseCode(reservation: CodeReservation): boolean; isReservationCurrent(reservation: CodeReservation): boolean; consumeCode(code: string): "ok" | "expired" | "consumed" | "unknown"; clear(): void; } export declare const qrSession: QRSession; export declare function renderQRAscii(code: string): string; export declare function displayQR(code: string): void;