import type { DevicePublicKey } from './contract'; import type { BoatKeyStore } from './keystore'; import { type RejectedDevice, type SealedFrame } from './sealing'; export type SealVerdict = { mode: 'sealed'; frame: SealedFrame; } | { mode: 'blocked'; reason: string; }; export interface SealerDeps { keys: BoatKeyStore; devices: () => DevicePublicKey[]; latched: () => boolean; boatId: () => string | undefined; debug: (msg: string) => void; } export interface SealState { mode: 'sealed' | 'blocked' | 'none'; reason: string | null; } export declare class Sealer { private readonly deps; private lastComplaint; private lastMode; private lastReason; private lastRejected; constructor(deps: SealerDeps); rejections(): RejectedDevice[]; state(): SealState; seal(frame: unknown): SealVerdict; answer(payload: unknown, id: string): SealVerdict; open(envelope: unknown): { id: string; plaintext: string; } | undefined; private sealPayload; private blocked; }