import { EventKey, EventMap, TypedEmitter } from './utils/TypedEmitter.js'; /** * @internal */ interface PromisifyEmitter { on>(eventName: K, fn: EM[K]): void; } /** * @internal */ type PromisifyFunc = (emitter: PromisifyEmitter, resolve: (result: T) => void, reject: (err: Error) => void) => void; declare const StreamablePromise_base: new () => TypedEmitter; /** * @internal */ export declare class StreamablePromise extends StreamablePromise_base implements Promise { private _promise; protected _collectResults: boolean; /** * @internal */ constructor(promisefyFn: PromisifyFunc); then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): Promise; finally(onfinally?: (() => void) | undefined | null): Promise; addListener>(eventName: T, listener: EM[T]): this; on>(eventName: T, listener: EM[T]): this; /** * @internal */ get [Symbol.toStringTag](): string; } /** * Provides the ability to be used as both a promise, or an event emitter. Enabling * an application to easily retrieve all results using async/await, while also enabling * streaming of results by listening for the row and meta events. */ export declare class StreamableRowPromise extends StreamablePromise void; meta: (meta: TMeta) => void; error: (err: Error) => void; end: () => void; }> { constructor(fn: (rows: TRow[], meta: TMeta) => T); } /** * Provides the ability to be used as both a promise, or an event emitter. Enabling * an application to easily retrieve all results using async/await, while also enabling * streaming of results by listening for the replica event. */ export declare class StreamableReplicasPromise extends StreamablePromise void; error: (err: Error) => void; end: () => void; }> { constructor(fn: (replicas: [TRep, ...TRep[]]) => T); } export declare class StreamableScanPromise extends StreamablePromise void; error: (err: Error) => void; end: () => void; }> { private _cancelRequested; constructor(fn: (results: TRes[]) => T); get cancelRequested(): boolean; cancelStreaming(): void; } export {};