import { z, type ZodError } from 'zod';
declare const MemoryConfigSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    storage: z.ZodEnum<["n8n", "sqlite", "postgres"]>;
    connection: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    lastMessages: z.ZodOptional<z.ZodNumber>;
    semanticRecall: z.ZodOptional<z.ZodObject<{
        topK: z.ZodNumber;
        scope: z.ZodOptional<z.ZodEnum<["thread", "resource"]>>;
        messageRange: z.ZodOptional<z.ZodObject<{
            before: z.ZodNumber;
            after: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            before: number;
            after: number;
        }, {
            before: number;
            after: number;
        }>>;
        embedder: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        topK: number;
        scope?: "resource" | "thread" | undefined;
        messageRange?: {
            before: number;
            after: number;
        } | undefined;
        embedder?: string | undefined;
    }, {
        topK: number;
        scope?: "resource" | "thread" | undefined;
        messageRange?: {
            before: number;
            after: number;
        } | undefined;
        embedder?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    storage: "n8n" | "sqlite" | "postgres";
    connection?: Record<string, unknown> | undefined;
    lastMessages?: number | undefined;
    semanticRecall?: {
        topK: number;
        scope?: "resource" | "thread" | undefined;
        messageRange?: {
            before: number;
            after: number;
        } | undefined;
        embedder?: string | undefined;
    } | undefined;
}, {
    enabled: boolean;
    storage: "n8n" | "sqlite" | "postgres";
    connection?: Record<string, unknown> | undefined;
    lastMessages?: number | undefined;
    semanticRecall?: {
        topK: number;
        scope?: "resource" | "thread" | undefined;
        messageRange?: {
            before: number;
            after: number;
        } | undefined;
        embedder?: string | undefined;
    } | undefined;
}>;
export declare const NodeConfigSchema: z.ZodObject<{
    nodeType: z.ZodString;
    nodeTypeVersion: z.ZodNumber;
    nodeParameters: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name: string;
    }, {
        id: string;
        name: string;
    }>>>;
}, "strip", z.ZodTypeAny, {
    nodeType: string;
    nodeTypeVersion: number;
    nodeParameters: Record<string, unknown>;
    credentials?: Record<string, {
        id: string;
        name: string;
    }> | undefined;
}, {
    nodeType: string;
    nodeTypeVersion: number;
    credentials?: Record<string, {
        id: string;
        name: string;
    }> | undefined;
    nodeParameters?: Record<string, unknown> | undefined;
}>;
declare const AgentJsonSkillConfigSchema: z.ZodObject<{
    type: z.ZodLiteral<"skill">;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    type: "skill";
}, {
    id: string;
    type: "skill";
}>;
declare const AgentJsonToolConfigSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"custom">;
    id: z.ZodString;
    requireApproval: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    id: string;
    type: "custom";
    requireApproval?: boolean | undefined;
}, {
    id: string;
    type: "custom";
    requireApproval?: boolean | undefined;
}>, z.ZodObject<{
    type: z.ZodLiteral<"workflow">;
    workflow: z.ZodString;
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    requireApproval: z.ZodOptional<z.ZodBoolean>;
    allOutputs: z.ZodOptional<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
    type: "workflow";
    workflow: string;
    description?: string | undefined;
    name?: string | undefined;
    requireApproval?: boolean | undefined;
    allOutputs?: boolean | undefined;
}, {
    type: "workflow";
    workflow: string;
    description?: string | undefined;
    name?: string | undefined;
    requireApproval?: boolean | undefined;
    allOutputs?: boolean | undefined;
}>, z.ZodObject<{
    type: z.ZodLiteral<"node">;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    node: z.ZodObject<{
        nodeType: z.ZodString;
        nodeTypeVersion: z.ZodNumber;
        nodeParameters: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
        credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
        }, {
            id: string;
            name: string;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        nodeType: string;
        nodeTypeVersion: number;
        nodeParameters: Record<string, unknown>;
        credentials?: Record<string, {
            id: string;
            name: string;
        }> | undefined;
    }, {
        nodeType: string;
        nodeTypeVersion: number;
        credentials?: Record<string, {
            id: string;
            name: string;
        }> | undefined;
        nodeParameters?: Record<string, unknown> | undefined;
    }>;
    requireApproval: z.ZodOptional<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
    name: string;
    type: "node";
    node: {
        nodeType: string;
        nodeTypeVersion: number;
        nodeParameters: Record<string, unknown>;
        credentials?: Record<string, {
            id: string;
            name: string;
        }> | undefined;
    };
    description?: string | undefined;
    requireApproval?: boolean | undefined;
}, {
    name: string;
    type: "node";
    node: {
        nodeType: string;
        nodeTypeVersion: number;
        credentials?: Record<string, {
            id: string;
            name: string;
        }> | undefined;
        nodeParameters?: Record<string, unknown> | undefined;
    };
    description?: string | undefined;
    requireApproval?: boolean | undefined;
}>]>;
export declare const AgentJsonConfigSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    model: z.ZodString;
    credential: z.ZodOptional<z.ZodString>;
    instructions: z.ZodString;
    memory: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        storage: z.ZodEnum<["n8n", "sqlite", "postgres"]>;
        connection: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        lastMessages: z.ZodOptional<z.ZodNumber>;
        semanticRecall: z.ZodOptional<z.ZodObject<{
            topK: z.ZodNumber;
            scope: z.ZodOptional<z.ZodEnum<["thread", "resource"]>>;
            messageRange: z.ZodOptional<z.ZodObject<{
                before: z.ZodNumber;
                after: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                before: number;
                after: number;
            }, {
                before: number;
                after: number;
            }>>;
            embedder: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        }, {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    }, {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    }>>;
    tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"custom">;
        id: z.ZodString;
        requireApproval: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    }, {
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"workflow">;
        workflow: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        requireApproval: z.ZodOptional<z.ZodBoolean>;
        allOutputs: z.ZodOptional<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    }, {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"node">;
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        node: z.ZodObject<{
            nodeType: z.ZodString;
            nodeTypeVersion: z.ZodNumber;
            nodeParameters: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
            credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                id: string;
                name: string;
            }, {
                id: string;
                name: string;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            nodeType: string;
            nodeTypeVersion: number;
            nodeParameters: Record<string, unknown>;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
        }, {
            nodeType: string;
            nodeTypeVersion: number;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
            nodeParameters?: Record<string, unknown> | undefined;
        }>;
        requireApproval: z.ZodOptional<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            nodeParameters: Record<string, unknown>;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    }, {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
            nodeParameters?: Record<string, unknown> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    }>]>, "many">>;
    skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"skill">;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
        type: "skill";
    }, {
        id: string;
        type: "skill";
    }>, "many">>;
    providerTools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
    integrations: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"schedule">;
        active: z.ZodBoolean;
        cronExpression: z.ZodEffects<z.ZodString, string, string>;
        wakeUpPrompt: z.ZodString;
    }, "strict", z.ZodTypeAny, {
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    }, {
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    }>, z.ZodObject<{
        type: z.ZodEffects<z.ZodString, string, string>;
        credentialId: z.ZodString;
        credentialName: z.ZodString;
    }, "strict", z.ZodTypeAny, {
        type: string;
        credentialName: string;
        credentialId: string;
    }, {
        type: string;
        credentialName: string;
        credentialId: string;
    }>]>, "many">>;
    config: z.ZodOptional<z.ZodObject<{
        thinking: z.ZodOptional<z.ZodObject<{
            provider: z.ZodEnum<["anthropic", "openai"]>;
            budgetTokens: z.ZodOptional<z.ZodNumber>;
            reasoningEffort: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        }, {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        }>>;
        toolCallConcurrency: z.ZodOptional<z.ZodNumber>;
        nodeTools: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
        }, {
            enabled: boolean;
        }>>;
    }, "strip", z.ZodTypeAny, {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    }, {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    instructions: string;
    model: string;
    description?: string | undefined;
    credential?: string | undefined;
    memory?: {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    } | undefined;
    config?: {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    } | undefined;
    tools?: ({
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    } | {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    } | {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            nodeParameters: Record<string, unknown>;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    })[] | undefined;
    skills?: {
        id: string;
        type: "skill";
    }[] | undefined;
    providerTools?: Record<string, Record<string, unknown>> | undefined;
    integrations?: ({
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    } | {
        type: string;
        credentialName: string;
        credentialId: string;
    })[] | undefined;
}, {
    name: string;
    instructions: string;
    model: string;
    description?: string | undefined;
    credential?: string | undefined;
    memory?: {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    } | undefined;
    config?: {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    } | undefined;
    tools?: ({
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    } | {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    } | {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
            nodeParameters?: Record<string, unknown> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    })[] | undefined;
    skills?: {
        id: string;
        type: "skill";
    }[] | undefined;
    providerTools?: Record<string, Record<string, unknown>> | undefined;
    integrations?: ({
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    } | {
        type: string;
        credentialName: string;
        credentialId: string;
    })[] | undefined;
}>;
export declare const AgentJsonConfigPartialSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    model: z.ZodOptional<z.ZodString>;
    credential: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    instructions: z.ZodOptional<z.ZodString>;
    memory: z.ZodOptional<z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        storage: z.ZodEnum<["n8n", "sqlite", "postgres"]>;
        connection: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        lastMessages: z.ZodOptional<z.ZodNumber>;
        semanticRecall: z.ZodOptional<z.ZodObject<{
            topK: z.ZodNumber;
            scope: z.ZodOptional<z.ZodEnum<["thread", "resource"]>>;
            messageRange: z.ZodOptional<z.ZodObject<{
                before: z.ZodNumber;
                after: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                before: number;
                after: number;
            }, {
                before: number;
                after: number;
            }>>;
            embedder: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        }, {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    }, {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    }>>>;
    tools: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"custom">;
        id: z.ZodString;
        requireApproval: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    }, {
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"workflow">;
        workflow: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        requireApproval: z.ZodOptional<z.ZodBoolean>;
        allOutputs: z.ZodOptional<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    }, {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"node">;
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        node: z.ZodObject<{
            nodeType: z.ZodString;
            nodeTypeVersion: z.ZodNumber;
            nodeParameters: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
            credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                id: string;
                name: string;
            }, {
                id: string;
                name: string;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            nodeType: string;
            nodeTypeVersion: number;
            nodeParameters: Record<string, unknown>;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
        }, {
            nodeType: string;
            nodeTypeVersion: number;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
            nodeParameters?: Record<string, unknown> | undefined;
        }>;
        requireApproval: z.ZodOptional<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            nodeParameters: Record<string, unknown>;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    }, {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
            nodeParameters?: Record<string, unknown> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    }>]>, "many">>>;
    skills: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"skill">;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
        type: "skill";
    }, {
        id: string;
        type: "skill";
    }>, "many">>>;
    providerTools: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
    integrations: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"schedule">;
        active: z.ZodBoolean;
        cronExpression: z.ZodEffects<z.ZodString, string, string>;
        wakeUpPrompt: z.ZodString;
    }, "strict", z.ZodTypeAny, {
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    }, {
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    }>, z.ZodObject<{
        type: z.ZodEffects<z.ZodString, string, string>;
        credentialId: z.ZodString;
        credentialName: z.ZodString;
    }, "strict", z.ZodTypeAny, {
        type: string;
        credentialName: string;
        credentialId: string;
    }, {
        type: string;
        credentialName: string;
        credentialId: string;
    }>]>, "many">>>;
    config: z.ZodOptional<z.ZodOptional<z.ZodObject<{
        thinking: z.ZodOptional<z.ZodObject<{
            provider: z.ZodEnum<["anthropic", "openai"]>;
            budgetTokens: z.ZodOptional<z.ZodNumber>;
            reasoningEffort: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        }, {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        }>>;
        toolCallConcurrency: z.ZodOptional<z.ZodNumber>;
        nodeTools: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
        }, {
            enabled: boolean;
        }>>;
    }, "strip", z.ZodTypeAny, {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    }, {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    }>>>;
}, "strip", z.ZodTypeAny, {
    description?: string | undefined;
    name?: string | undefined;
    credential?: string | undefined;
    memory?: {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    } | undefined;
    config?: {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    } | undefined;
    instructions?: string | undefined;
    model?: string | undefined;
    tools?: ({
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    } | {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    } | {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            nodeParameters: Record<string, unknown>;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    })[] | undefined;
    skills?: {
        id: string;
        type: "skill";
    }[] | undefined;
    providerTools?: Record<string, Record<string, unknown>> | undefined;
    integrations?: ({
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    } | {
        type: string;
        credentialName: string;
        credentialId: string;
    })[] | undefined;
}, {
    description?: string | undefined;
    name?: string | undefined;
    credential?: string | undefined;
    memory?: {
        enabled: boolean;
        storage: "n8n" | "sqlite" | "postgres";
        connection?: Record<string, unknown> | undefined;
        lastMessages?: number | undefined;
        semanticRecall?: {
            topK: number;
            scope?: "resource" | "thread" | undefined;
            messageRange?: {
                before: number;
                after: number;
            } | undefined;
            embedder?: string | undefined;
        } | undefined;
    } | undefined;
    config?: {
        thinking?: {
            provider: "anthropic" | "openai";
            budgetTokens?: number | undefined;
            reasoningEffort?: string | undefined;
        } | undefined;
        toolCallConcurrency?: number | undefined;
        nodeTools?: {
            enabled: boolean;
        } | undefined;
    } | undefined;
    instructions?: string | undefined;
    model?: string | undefined;
    tools?: ({
        id: string;
        type: "custom";
        requireApproval?: boolean | undefined;
    } | {
        type: "workflow";
        workflow: string;
        description?: string | undefined;
        name?: string | undefined;
        requireApproval?: boolean | undefined;
        allOutputs?: boolean | undefined;
    } | {
        name: string;
        type: "node";
        node: {
            nodeType: string;
            nodeTypeVersion: number;
            credentials?: Record<string, {
                id: string;
                name: string;
            }> | undefined;
            nodeParameters?: Record<string, unknown> | undefined;
        };
        description?: string | undefined;
        requireApproval?: boolean | undefined;
    })[] | undefined;
    skills?: {
        id: string;
        type: "skill";
    }[] | undefined;
    providerTools?: Record<string, Record<string, unknown>> | undefined;
    integrations?: ({
        active: boolean;
        type: "schedule";
        cronExpression: string;
        wakeUpPrompt: string;
    } | {
        type: string;
        credentialName: string;
        credentialId: string;
    })[] | undefined;
}>;
export type AgentJsonConfig = z.infer<typeof AgentJsonConfigSchema>;
export type AgentJsonToolConfig = z.infer<typeof AgentJsonToolConfigSchema>;
export type AgentJsonSkillConfig = z.infer<typeof AgentJsonSkillConfigSchema>;
export type AgentJsonConfigRef = AgentJsonToolConfig | AgentJsonSkillConfig;
export type AgentJsonMemoryConfig = z.infer<typeof MemoryConfigSchema>;
export interface ConfigValidationError {
    path: string;
    message: string;
    expected?: string;
    received?: string;
}
export declare function tryParseConfigJson(raw: string): {
    ok: true;
    data: unknown;
} | {
    ok: false;
    errors: ConfigValidationError[];
};
export declare function formatZodErrors(error: ZodError): ConfigValidationError[];
export declare function isNodeToolsEnabled(config: AgentJsonConfig['config']): boolean;
export {};
