/**
 * @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 input: {
            readonly title: "Single Input";
            readonly description: "A single value to output";
        };
    };
    readonly additionalProperties: false;
};
declare const outputSchema: {
    readonly type: "object";
    readonly properties: {};
    readonly additionalProperties: true;
};
export type SplitTaskInput = FromSchema<typeof inputSchema>;
export type SplitTaskOutput = FromSchema<typeof outputSchema>;
/**
 * SplitTask takes an array or single value as input and creates
 * separate outputs for each element. Each output is named by its index (0, 1, 2, etc.).
 * Useful for workflows that need to process array elements in parallel branches.
 *
 * Features:
 * - Accepts both arrays and single values as input
 * - Creates one output per array element (output_0, output_1, etc.)
 * - Single values are treated as a single-element array
 * - Output count matches array length
 *
 * Example:
 * Input: { input: [1, 2, 3] }
 * Output: { output_0: 1, output_1: 2, output_2: 3 }
 */
export declare class SplitTask<Input extends SplitTaskInput = SplitTaskInput, Output extends SplitTaskOutput = SplitTaskOutput, Config extends TaskConfig = TaskConfig> extends Task<Input, Output, Config> {
    static type: string;
    static category: string;
    static title: string;
    static description: string;
    static readonly cacheable = false;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly input: {
                readonly title: "Single Input";
                readonly description: "A single value to output";
            };
        };
        readonly additionalProperties: false;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {};
        readonly additionalProperties: true;
    };
    execute(input: Input, _context: IExecuteContext): Promise<Output | undefined>;
    executePreview(input: Input): Promise<Output | undefined>;
}
export declare const split: (input: SplitTaskInput, config?: TaskConfig) => Promise<{
    [x: string]: unknown;
}>;
declare module "@workglow/task-graph" {
    interface Workflow {
        split: CreateWorkflow<SplitTaskInput, SplitTaskOutput, TaskConfig>;
    }
}
export {};
//# sourceMappingURL=SplitTask.d.ts.map