export interface WidgetExchange { request: Record; onResult: (d: Record) => { done: true; value: unknown; } | { done: false; } | { error: string; }; } /** * Run one signer exchange through the in-app widget. Resolves when `onResult` * accepts a result; falls back to `popupFallback` if the frame cannot be mounted * or never loads. */ export declare function runWidget(url: string, signerOrigin: string, ex: WidgetExchange, popupFallback: () => Promise): Promise;