import type { Maybe, UnbatchedExecutionExtra } from "../interfaces.ts";
import type { Step } from "../step.ts";
import { UnbatchedStep } from "../step.ts";
export declare class CoalesceStep<T> extends UnbatchedStep<T | null> {
    static $$export: {
        moduleName: string;
        exportName: string;
    };
    isSyncAndSafe: boolean;
    constructor(steps: ReadonlyArray<Step<Maybe<T>>>);
    finalize(): void;
    unbatchedExecute(_info: UnbatchedExecutionExtra, ...values: ReadonlyArray<T | null>): NonNullable<T> | null;
}
export declare function coalesce<T>(steps: ReadonlyArray<Step<Maybe<T>>>): CoalesceStep<T>;
export declare function coalesce<T>(...steps: ReadonlyArray<Step<Maybe<T>>>): CoalesceStep<T>;
//# sourceMappingURL=coalesce.d.ts.map