/**
 * @license
 * Copyright 2025 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { CreateWorkflow, IExecuteContext, Task, TaskConfig } from "@workglow/task-graph";
import { FromSchema } from "@workglow/util/schema";
declare const inputSchema: {
    readonly type: "object";
    readonly properties: {};
    readonly additionalProperties: true;
};
declare const outputSchema: {
    readonly type: "object";
    readonly properties: {
        readonly output: {
            readonly type: "array";
            readonly title: "Merged Array";
            readonly description: "Array containing all input values in order";
        };
    };
    readonly additionalProperties: false;
};
export type MergeTaskInput = FromSchema<typeof inputSchema>;
export type MergeTaskOutput = FromSchema<typeof outputSchema>;
/**
 * MergeTask takes multiple inputs and merges them into a single array output.
 * Input properties are collected and sorted by key name to create a deterministic output order.
 * Useful for collecting results from parallel branches into a single array.
 *
 * Features:
 * - Accepts any number of input properties (additionalProperties: true)
 * - Merges all input values into a single array output
 * - Sorts inputs by property name for consistent ordering
 * - Output is always an array
 *
 * Example:
 * Input: { input_0: "a", input_1: "b", input_2: "c" }
 * Output: { output: ["a", "b", "c"] }
 */
export declare class MergeTask<Input extends MergeTaskInput = MergeTaskInput, Output extends MergeTaskOutput = MergeTaskOutput, Config extends TaskConfig = TaskConfig> extends Task<Input, Output, Config> {
    static type: string;
    static category: string;
    static title: string;
    static description: string;
    static readonly cacheable = true;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {};
        readonly additionalProperties: true;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly output: {
                readonly type: "array";
                readonly title: "Merged Array";
                readonly description: "Array containing all input values in order";
            };
        };
        readonly additionalProperties: false;
    };
    execute(input: Input, _context: IExecuteContext): Promise<Output>;
}
export declare const merge: (input: MergeTaskInput, config?: TaskConfig) => Promise<{
    output?: unknown[] | undefined;
}>;
declare module "@workglow/task-graph" {
    interface Workflow {
        merge: CreateWorkflow<MergeTaskInput, MergeTaskOutput, TaskConfig>;
    }
}
export {};
//# sourceMappingURL=MergeTask.d.ts.map