export interface PeerRecord { name: string; remote_epk: string; paired_at: string; } export declare function listPeers(): Promise; declare const _ownerStorageTokenBrand: unique symbol; /** Opaque, process-local provenance for one canonical Owner storage slot. */ export type OwnerStorageToken = { readonly [_ownerStorageTokenBrand]: true; }; export interface OwnerStorageSnapshotRecord { readonly rawOwnerPubkey: unknown; readonly token: OwnerStorageToken; } export type ConditionalPeerRemoval = { readonly outcome: "removed"; readonly nextToken: OwnerStorageToken; } | { readonly outcome: "stale" | "not_found" | "no_authority"; }; /** Provenance and pre-write state for one successful addPeer mutation. */ export interface PeerWriteReceipt { readonly record: PeerRecord; readonly token: OwnerStorageToken; /** The raw record replaced by this write, when addPeer overwrote one. */ readonly previousRecord?: unknown; } export type ConditionalPeerRollback = { readonly outcome: "removed" | "restored"; readonly nextToken: OwnerStorageToken; } | { readonly outcome: "stale" | "not_found" | "no_authority"; }; export declare function addPeer(record: PeerRecord): Promise; /** * Returns the set of distinct `remote_epk` values in peers.json. * * Each `remote_epk` is the paired Owner's Ed25519 public key and represents a * machine-scoped authorization entry. */ export declare function listOwnerPubkeys(): Promise; /** * Atomically snapshots raw Owner handles and their canonical-slot provenance. * The token is process-local and opaque to callers. */ export declare function snapshotOwnerPubkeys(): Promise; /** * Removes one exact raw handle only when its snapshot provenance still owns * the target canonical Owner slot. The final authority/token checks and sync * write share the existing serialized mutation lane. */ export declare function conditionalRemovePeer(remoteEpk: string, expectedToken: OwnerStorageToken, canCommit?: () => boolean): Promise; /** * Compensates a specific addPeer write only while that write still owns its * canonical Owner slot. The receipt's raw written record must still be * present, so an out-of-band replacement cannot be removed or overwritten. */ export declare function conditionalRollbackPeer(receipt: PeerWriteReceipt, canCommit?: () => boolean): Promise; export declare function removePeer(remoteEpk: string, canCommit?: () => boolean): Promise; export {};