export declare function promisify<A>(f: (...args: any[]) => any, args?: any[]): Promise<A>;
export interface PromiseCallback<A> {
    (err: any, res: A): any;
    promise: Promise<A>;
}
export declare function genPromiseCallback<A>(): PromiseCallback<A>;
export declare function runFinally<A>(p: Promise<A>, cb: () => void): Promise<A>;
/**
 * @description only supported in NodeJS runtime, will throw error in browser runtime
 */
export declare function getPromiseState(p: Promise<unknown>): 'pending' | 'fulfilled' | 'rejected';
