import { z } from 'zod';
import type { WorkflowCompilerPort } from '../engine/engine.js';
export declare function createGenerateWorkflowTool(engine: WorkflowCompilerPort): import("ai").Tool<z.ZodObject<{
    name: z.ZodString;
    nodes: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodString;
        parameters: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        typeVersion: z.ZodOptional<z.ZodNumber>;
        position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
        credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            id: z.ZodOptional<z.ZodString>;
            name: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            id?: string | undefined;
            name?: string | undefined;
        }, {
            id?: string | undefined;
            name?: string | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        name: string;
        parameters: Record<string, unknown>;
        credentials?: Record<string, {
            id?: string | undefined;
            name?: string | undefined;
        }> | undefined;
        typeVersion?: number | undefined;
        position?: [number, number] | undefined;
    }, {
        type: string;
        name: string;
        parameters: Record<string, unknown>;
        credentials?: Record<string, {
            id?: string | undefined;
            name?: string | undefined;
        }> | undefined;
        typeVersion?: number | undefined;
        position?: [number, number] | undefined;
    }>, "many">;
    connections: z.ZodUnion<[z.ZodArray<z.ZodObject<{
        from: z.ZodString;
        to: z.ZodString;
        type: z.ZodOptional<z.ZodString>;
        index: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }, {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }>, "many">, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodArray<z.ZodArray<z.ZodObject<{
        node: z.ZodString;
        type: z.ZodString;
        index: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        node: string;
        index?: number | undefined;
    }, {
        type: string;
        node: string;
        index?: number | undefined;
    }>, "many">, "many">>>, z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
        from: z.ZodString;
        to: z.ZodString;
        type: z.ZodOptional<z.ZodString>;
        index: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }, {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }>, "many">>]>;
    active: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    nodes: {
        type: string;
        name: string;
        parameters: Record<string, unknown>;
        credentials?: Record<string, {
            id?: string | undefined;
            name?: string | undefined;
        }> | undefined;
        typeVersion?: number | undefined;
        position?: [number, number] | undefined;
    }[];
    connections: {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }[] | Record<string, Record<string, {
        type: string;
        node: string;
        index?: number | undefined;
    }[][]>> | Record<string, {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }[]>;
    active?: boolean | undefined;
}, {
    name: string;
    nodes: {
        type: string;
        name: string;
        parameters: Record<string, unknown>;
        credentials?: Record<string, {
            id?: string | undefined;
            name?: string | undefined;
        }> | undefined;
        typeVersion?: number | undefined;
        position?: [number, number] | undefined;
    }[];
    connections: {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }[] | Record<string, Record<string, {
        type: string;
        node: string;
        index?: number | undefined;
    }[][]>> | Record<string, {
        from: string;
        to: string;
        type?: string | undefined;
        index?: number | undefined;
    }[]>;
    active?: boolean | undefined;
}>, {
    workflow: import("../types.js").GeneratedWorkflow;
}> & {
    execute: (args: {
        name: string;
        nodes: {
            type: string;
            name: string;
            parameters: Record<string, unknown>;
            credentials?: Record<string, {
                id?: string | undefined;
                name?: string | undefined;
            }> | undefined;
            typeVersion?: number | undefined;
            position?: [number, number] | undefined;
        }[];
        connections: {
            from: string;
            to: string;
            type?: string | undefined;
            index?: number | undefined;
        }[] | Record<string, Record<string, {
            type: string;
            node: string;
            index?: number | undefined;
        }[][]>> | Record<string, {
            from: string;
            to: string;
            type?: string | undefined;
            index?: number | undefined;
        }[]>;
        active?: boolean | undefined;
    }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
        workflow: import("../types.js").GeneratedWorkflow;
    }>;
};
//# sourceMappingURL=generate-workflow.d.ts.map