/**
 * A callback that will either receive an Error or a valid response,
 * depending on the result of the operation.
 */
import { ClientCancellableCall } from "../call/ClientCancellableCall";
export declare type Callback<A> = (error: Error | null, response?: A) => void;
declare type Call<Request, Response> = (request: Request, callback: Callback<Response>) => ClientCancellableCall;
declare type PromisifiedCall<Request, Response> = (request?: Request) => Promise<Response>;
export declare function promisify<Request, Response>(call: Call<Request, Response>): PromisifiedCall<Request, Response>;
export declare function forwardVoidResponse(callback: Callback<void>, error: Error | null): void;
export declare function forward<A, B>(callback: Callback<B>, error: Error | null, response: A, process: (_: A) => B): void;
export {};
