export type RPCMessageBus = { postMessage: Function; addEventListener: Function; removeEventListener: Function; }; export declare const close: unique symbol; export declare const cancel: unique symbol; export type Exposed = { [k in keyof T]: T[k] & { close(): void; }; } & { [close]: () => void; }; export declare function exposeAll(obj: O, messageBus: RPCMessageBus): Exposed; export type Caller = CancelableMethods> & { [cancel]: () => void; }; export declare function createCaller(methodNames: Extract[], messageBus: RPCMessageBus, processors?: Partial any[]>>): Caller;