import Bridge from './base';
import { ApiMap, InvokeHandlerParam as ApiParam, InvokeParam } from './types';
type Back<A extends ApiMap, N extends keyof A = keyof A> = InvokeParam<A, N> | Promise<InvokeParam<A, N>>;
export declare class AbstractSdk<A extends ApiMap = {}> {
    exec<N extends keyof A, B extends Bridge<A, any, unknown>>(name: N, param: ApiParam<A, N>, bridge: B): Back<A, N>;
}
export declare function hightOrderSdk<A extends ApiMap, S extends AbstractSdk<A>>(sdk: S, fn?: (e: Error) => object): <B extends Bridge<A, any, unknown>, N extends keyof A>(name: N, param: ApiParam<A, N>, bridge: B) => void;
export {};
