import { type KeyObject } from 'crypto'; import type { DevicePublicKey } from './contract'; export declare const MAC_BYTES = 32; export interface DeviceAnchor { kid: string; pub: string; } export declare function approvalInput(boat: string, approverKid: string, subjectKid: string, subjectPub: Buffer): Buffer; export declare function computeApproval(opts: { approverPriv: KeyObject; inboxPub: Buffer; boat: string; approverKid: string; subjectKid: string; subjectPub: Buffer; }): Buffer; export declare function verifyApproval(opts: { inboxPriv: KeyObject; approverPub: Buffer; boat: string; approverKid: string; subjectKid: string; subjectPub: Buffer; mac: Buffer; }): boolean; export interface SkippedDevice { kid: string; reason: string; } export interface AcceptResult { accepted: DevicePublicKey[]; skipped: SkippedDevice[]; pinned: boolean; } export declare function acceptDevices(opts: { anchor: DeviceAnchor | null | 'broken'; entries: DevicePublicKey[]; inboxPriv: KeyObject | undefined; boat: string | undefined; }): AcceptResult;