import type { Awaitable } from "./Awaitable.js"; import type { Message } from "./Message.js"; import type { Signature } from "./Signature.js"; export interface SignatureScheme { type: string; codecs: string[]; verify: (signature: Signature, message: Message) => Awaitable; create: (init?: { type: string; privateKey: Uint8Array; }) => Signer; } export interface Signer { scheme: SignatureScheme; publicKey: string; sign(message: Message, options?: { codec?: string; }): Awaitable; export(): { type: string; privateKey: Uint8Array; }; }