import { IOptionalPromise } from '@promises/interfaces';
export interface ICurriedToCallback {
    <T, R>(callback: (error?: any, value?: T) => IOptionalPromise<R>, value: IOptionalPromise<T>): Promise<R>;
    <T, R>(callback: (error?: any, value?: T) => IOptionalPromise<R>): (value: IOptionalPromise<T>) => Promise<R>;
}
/**
 * @function
 * @example
 *
 *  let promise: Promise<string> = Promise.resolve<string>('foo');
 *
 *  toCallback((error: any, result: string) => {
 *      console.log(error); // error => null
 *      console.log(result); // result => 'foo'
 *  })(promise);
 */
declare let curriedToCallback: ICurriedToCallback;
export { __ } from '@promises/_curry';
export default curriedToCallback;
