export function fromCallback(callback: Callback | undefined, symbol: S) : Callback & { [K in S]?: Promise }; export function fromCallback(callback: Callback | undefined) : Callback & { promise?: Promise }; export function fromPromise(promise: Promise, callback: Callback | undefined) : Promise | undefined; type Callback = (err: Error | null, result: T) => void;