export type PairingSecretResult = { secret: string; expiresAt: Date; }; export type PairingExchangePayload = { token: string; baseUrl: string | null; lanUrl: string | null; connectUrls: string[]; }; export declare function cachePairingExchange(secret: string, payload: PairingExchangePayload): void; export declare function getCachedPairingExchange(secret: string): PairingExchangePayload | null; /** * Consume a pairing secret once and build the exchange payload. * Concurrent requests for the same secret share one in-flight exchange (mobile cold-start deeplink). */ export declare function exchangePairingSecretOnce(secret: string, buildPayload: () => PairingExchangePayload): Promise; export declare function createPairingSecret(): PairingSecretResult; export declare function consumePairingSecret(secret: string): boolean; /** @internal */ export declare function resetPairingSessionsForTests(): void;