/**
 * @license
 * Copyright 2025 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { CreateWorkflow, GraphAsTask, GraphAsTaskConfig, TaskConfig } from "@workglow/task-graph";
import { FromSchema } from "@workglow/util/schema";
declare const inputSchema: {
    readonly type: "object";
    readonly properties: {
        readonly json: {
            readonly type: "string";
            readonly title: "JSON";
            readonly description: "The JSON to parse";
        };
    };
    readonly additionalProperties: false;
};
export type JsonTaskInput = FromSchema<typeof inputSchema>;
declare const outputSchema: {
    readonly type: "object";
    readonly properties: {
        readonly output: {
            readonly title: "Output";
            readonly description: "Output depends on the generated task graph";
        };
    };
    readonly additionalProperties: false;
};
export type JsonTaskOutput = FromSchema<typeof outputSchema>;
/**
 * JsonTask is a specialized task that creates and manages task graphs from JSON configurations.
 * It allows dynamic creation of task networks by parsing JSON definitions of tasks and their relationships.
 */
export declare class JsonTask<Input extends JsonTaskInput = JsonTaskInput, Output extends JsonTaskOutput = JsonTaskOutput, Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>> extends GraphAsTask<Input, Output, Config> {
    static type: string;
    static category: string;
    static title: string;
    static description: string;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly json: {
                readonly type: "string";
                readonly title: "JSON";
                readonly description: "The JSON to parse";
            };
        };
        readonly additionalProperties: false;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly output: {
                readonly title: "Output";
                readonly description: "Output depends on the generated task graph";
            };
        };
        readonly additionalProperties: false;
    };
    /**
     * Regenerates the entire task graph based on the current JSON input
     * Creates task nodes and establishes data flow connections between them
     */
    regenerateGraph(): void;
}
/**
 * Convenience function to create and run a JsonTask
 */
export declare const json: (input: JsonTaskInput, config?: TaskConfig) => Promise<{
    output?: unknown;
}>;
declare module "@workglow/task-graph" {
    interface Workflow {
        json: CreateWorkflow<JsonTaskInput, JsonTaskOutput, TaskConfig>;
    }
}
export {};
//# sourceMappingURL=JsonTask.d.ts.map