/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { z } from 'zod';
export declare const TodoStatus: z.ZodEnum<["pending", "in_progress", "completed"]>;
export declare const TodoPriority: z.ZodEnum<["high", "medium", "low"]>;
export declare const TodoToolCallSchema: z.ZodObject<{
    id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
    name: z.ZodString;
    parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
    timestamp: z.ZodDate;
}, "strip", z.ZodTypeAny, {
    id: string;
    timestamp: Date;
    name: string;
    parameters: Record<string, any>;
}, {
    id: string | number;
    timestamp: Date;
    name: string;
    parameters: Record<string, any>;
}>;
export declare const SubtaskSchema: z.ZodObject<{
    id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
    content: z.ZodString;
    toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
        name: z.ZodString;
        parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
        timestamp: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        id: string;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }, {
        id: string | number;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    id: string;
    content: string;
    toolCalls?: {
        id: string;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }[] | undefined;
}, {
    id: string | number;
    content: string;
    toolCalls?: {
        id: string | number;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }[] | undefined;
}>;
export declare const TodoSchema: z.ZodObject<{
    id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
    content: z.ZodString;
    status: z.ZodEnum<["pending", "in_progress", "completed"]>;
    priority: z.ZodEnum<["high", "medium", "low"]>;
    subtasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
        content: z.ZodString;
        toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
            name: z.ZodString;
            parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
            timestamp: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            id: string;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }, {
            id: string | number;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        content: string;
        toolCalls?: {
            id: string;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }, {
        id: string | number;
        content: string;
        toolCalls?: {
            id: string | number;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }>, "many">>;
    toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
        name: z.ZodString;
        parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
        timestamp: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        id: string;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }, {
        id: string | number;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    id: string;
    status: "in_progress" | "completed" | "pending";
    content: string;
    priority: "low" | "medium" | "high";
    toolCalls?: {
        id: string;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }[] | undefined;
    subtasks?: {
        id: string;
        content: string;
        toolCalls?: {
            id: string;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }[] | undefined;
}, {
    id: string | number;
    status: "in_progress" | "completed" | "pending";
    content: string;
    priority: "low" | "medium" | "high";
    toolCalls?: {
        id: string | number;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }[] | undefined;
    subtasks?: {
        id: string | number;
        content: string;
        toolCalls?: {
            id: string | number;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }[] | undefined;
}>;
export declare const TodoArraySchema: z.ZodArray<z.ZodObject<{
    id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
    content: z.ZodString;
    status: z.ZodEnum<["pending", "in_progress", "completed"]>;
    priority: z.ZodEnum<["high", "medium", "low"]>;
    subtasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
        content: z.ZodString;
        toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
            name: z.ZodString;
            parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
            timestamp: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            id: string;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }, {
            id: string | number;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        content: string;
        toolCalls?: {
            id: string;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }, {
        id: string | number;
        content: string;
        toolCalls?: {
            id: string | number;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }>, "many">>;
    toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
        name: z.ZodString;
        parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
        timestamp: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        id: string;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }, {
        id: string | number;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    id: string;
    status: "in_progress" | "completed" | "pending";
    content: string;
    priority: "low" | "medium" | "high";
    toolCalls?: {
        id: string;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }[] | undefined;
    subtasks?: {
        id: string;
        content: string;
        toolCalls?: {
            id: string;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }[] | undefined;
}, {
    id: string | number;
    status: "in_progress" | "completed" | "pending";
    content: string;
    priority: "low" | "medium" | "high";
    toolCalls?: {
        id: string | number;
        timestamp: Date;
        name: string;
        parameters: Record<string, any>;
    }[] | undefined;
    subtasks?: {
        id: string | number;
        content: string;
        toolCalls?: {
            id: string | number;
            timestamp: Date;
            name: string;
            parameters: Record<string, any>;
        }[] | undefined;
    }[] | undefined;
}>, "many">;
export type TodoToolCall = z.infer<typeof TodoToolCallSchema>;
export type Subtask = z.infer<typeof SubtaskSchema>;
export type Todo = z.infer<typeof TodoSchema>;
export type TodoStatus = z.infer<typeof TodoStatus>;
export type TodoPriority = z.infer<typeof TodoPriority>;
