/** * Typed event emitter for passkey / wallet lifecycle events. * * `on()` returns an unsubscribe function; a listener that throws is isolated so * it never prevents the other listeners from running. * * @packageDocumentation */ import type { SignerStore } from "./types.js"; /** * The events the kit can emit, mapped to their payload shapes. */ export type PasskeyEventMap = { /** A new wallet was deployed. */ walletCreated: { contractId: string; keyId: string; }; /** An existing wallet was connected. */ walletConnected: { contractId: string; keyId: string; }; /** The connected wallet was disconnected. */ walletDisconnected: { contractId: string; }; /** A signer was added to the connected wallet. */ signerAdded: { contractId: string; kind: "Policy" | "Ed25519" | "Secp256r1"; storage: SignerStore; }; /** A signer was updated on the connected wallet. */ signerUpdated: { contractId: string; kind: "Policy" | "Ed25519" | "Secp256r1"; storage: SignerStore; }; /** A signer was removed from the connected wallet. */ signerRemoved: { contractId: string; kind: "Policy" | "Ed25519" | "Secp256r1"; }; /** An authorization entry was signed. */ transactionSigned: { contractId: string; keyId?: string; }; /** A transaction was submitted. */ transactionSubmitted: { hash: string; success: boolean; }; }; /** The set of event names the kit emits. */ export type PasskeyEvent = keyof PasskeyEventMap; /** An event listener. */ export type EventListener = (data: T) => void; /** * A small typed event emitter for passkey lifecycle events. * * @example * ```typescript * const events = new PasskeyEventEmitter(); * const off = events.on("walletConnected", ({ contractId }) => { * console.log("connected", contractId); * }); * events.emit("walletConnected", { contractId: "C…", keyId: "…" }); * off(); * ``` */ export declare class PasskeyEventEmitter { private listeners; private errorHandler; /** * Set the handler invoked when a listener throws. Pass `undefined` to silence * listener errors entirely. */ setErrorHandler(handler: ((event: PasskeyEvent, error: unknown) => void) | undefined): void; /** Subscribe to an event. Returns an unsubscribe function. */ on(event: E, listener: EventListener): () => void; /** Subscribe to an event, firing at most once. Returns an unsubscribe fn. */ once(event: E, listener: EventListener): () => void; /** Unsubscribe a specific listener from an event. */ off(event: E, listener: EventListener): void; /** Emit an event to all subscribers, isolating any that throw. */ emit(event: E, data: PasskeyEventMap[E]): void; /** Remove all listeners for an event, or for every event when omitted. */ removeAllListeners(event?: PasskeyEvent): void; /** Number of listeners registered for an event. */ listenerCount(event: PasskeyEvent): number; } //# sourceMappingURL=events.d.ts.map