import type { LanVoiceCertificate } from "./certificate.ts"; export interface LanTakeoverIdentity { certificate: string; } export interface LanTakeoverOffer extends LanTakeoverIdentity { token: string; } export interface PreparedLanTakeover { offer: LanTakeoverOffer; certificate: LanVoiceCertificate; } export declare function prepareLanTakeover(agentDir: string): Promise; export declare function decodeLanTakeoverOffer(value: unknown): LanTakeoverOffer; export declare function assertLanTakeoverIdentity(source: LanTakeoverIdentity, target: LanTakeoverIdentity): void; /** A peer must reach this exact certificate-pinned listener through its own loopback. */ export declare function verifyLanTakeoverListener(certificate: string, value: unknown): Promise; /** Only the reconnect carrying the source token may use the prepared snapshot. */ export declare class LanTakeoverArrival { private pending; constructor(token: string | undefined, value: T | undefined); consume(token?: string): T | undefined; }