/**
 * PairingPendingStore — Machine-local 0600 store for pending-verification SAS words.
 *
 * Part of Secure A2A Verified Pairing (docs/specs/secure-a2a-verified-pairing.md).
 *
 * The SAS words + sasFingerprint for a pending verification are sensitive-but-
 * machine-local (FD4): they are bound to the machine-local handshake's ephemeral
 * shared secret and are NEVER replicated to peer machines. They live in a 0600
 * file SEPARATE from the (replicated) trust profile so the operator can re-read
 * the SAS after a restart. The record is DISCARDED the moment the pairing
 * transitions to `mutual-verified` or `verification-failed`.
 *
 * The SAS WORDS only ever exist here (and on the dashboard pairing panel); the
 * trust profile stores only the `sasFingerprint` (FD3), never the words.
 *
 * Storage: {stateDir}/threadline/pairing-pending.json (mode 0600).
 */
export interface PendingPairingRecord {
    /** Identifies THIS handshake instance (epoch binding, FD4). */
    pairingId: string;
    /** The peer's cryptographic fingerprint. */
    peerFp: string;
    /** The peer's Ed25519 identity public key (hex). */
    peerIdentityPub: string;
    /** The 6 SAS words (FD1/FD2) — sensitive, machine-local, never logged/replicated. */
    sasWords: string[];
    /** SAS fingerprint (FD3) — the value bound into the receipt + logged. */
    sasFingerprint: string;
    /** When this pending record was created (ISO-8601). */
    createdAt: string;
}
export declare class PairingPendingStore {
    private readonly threadlineDir;
    private readonly storePath;
    private pending;
    constructor(options: {
        stateDir: string;
    });
    /**
     * Record (or replace) the pending SAS for a peer. A new handshake (new
     * pairingId) simply overwrites the prior pending record for that peer.
     */
    put(record: PendingPairingRecord): void;
    /** Read the pending record for a peer (incl. the SAS words). Null if none. */
    get(peerFp: string): PendingPairingRecord | null;
    /** Discard the pending record for a peer (on transition to verified/failed). */
    discard(peerFp: string): void;
    /** List all peer fingerprints with a pending record. */
    listPeers(): string[];
    /** Force reload from disk. */
    reload(): void;
    private load;
    private save;
}
//# sourceMappingURL=PairingPendingStore.d.ts.map