import { type KeyObject } from 'crypto'; import type { SealedFrame, WrappedKey } from './contract'; export type { SealedFrame, WrappedKey }; export declare const FRAME_VERSION = 1; export declare const MAX_DEVICES = 5; export interface DeviceKey { kid: string; pub: Buffer; } export declare function strictDecode(value: unknown, expectedBytes?: number): Buffer; export declare function lp(buf: Buffer): Buffer; export declare function u16be(n: number): Buffer; export declare function u32be(n: number): Buffer; export declare function u64be(n: number): Buffer; export declare function signingInput(frame: Record): Buffer; export declare function rawPublic(key: KeyObject): Buffer; export declare function publicFromPrivate(key: KeyObject): Buffer; export declare function rawPrivate(key: KeyObject): Buffer; export declare function x25519PublicFromRaw(raw: Buffer): KeyObject; export declare function x25519PrivateFromRaw(priv: Buffer, pub: Buffer): KeyObject; export declare function ed25519PublicFromRaw(raw: Buffer): KeyObject; export declare function ed25519PrivateFromRaw(priv: Buffer, pub: Buffer): KeyObject; export interface SealedRequest { type: 'ask'; v: number; id: string; eph: string; body: string; } export declare function sealRequest(opts: { boat: string; id: string; plaintext: string; inbox: Buffer; }): SealedRequest; export declare function openRequest(envelope: unknown, boat: string, inboxPriv: Buffer, inboxPub: Buffer): { id: string; plaintext: string; }; export interface RejectedDevice { kid: string; reason: string; } export interface SealResult { frame: SealedFrame; rejected: RejectedDevice[]; } export interface SealOptions { boat: string; ts: number; plaintext: string; devices: DeviceKey[]; identity: KeyObject; extensions?: Record; } export declare function sealFrame(opts: SealOptions): SealResult; export declare function verifyFrame(frame: unknown, boatIdentityPub: KeyObject): boolean; export declare function openFrame(frame: SealedFrame, boatIdentityPub: KeyObject, kid: string, priv: Buffer, pub: Buffer): string;