export interface Ref { current: T; } export type Bind = [get: () => T, set: (v: T) => void]; export declare function refFromBind([get, set]: Bind): Ref; export interface AsyncBindingOptions { initialOutput: O; toOutput: (signal: AbortSignal, input: I) => Promise; toInput: (signal: AbortSignal, output: O) => Promise; setInput: (v: I) => void; getInput: () => I; isEqual?: (a: I, b: I | undefined) => boolean; } export declare function createAsyncBinding({ initialOutput, getInput, setInput, toInput, toOutput, isEqual, }: AsyncBindingOptions): { current: O; readonly inputProcessing: boolean; readonly outputProcessing: boolean; };