import { CollectionListInputSchema, CollectionGetInputSchema, CollectionDeleteInputSchema } from './collections.js';
import { z } from 'zod';

/**
 * Agent entity schema for AI agents
 * Extends BaseCollectionEntitySchema with agent-specific fields
 * Base schema already includes: id, title, created_at, updated_at, created_by, updated_by
 */
declare const AgentSchema: z.ZodObject<{
    id: z.ZodString;
    title: z.ZodString;
    created_at: z.ZodString;
    updated_at: z.ZodString;
    created_by: z.ZodOptional<z.ZodString>;
    updated_by: z.ZodOptional<z.ZodString>;
} & {
    description: z.ZodString;
    instructions: z.ZodString;
    tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
    avatar: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    title: string;
    created_at: string;
    updated_at: string;
    description: string;
    instructions: string;
    tool_set: Record<string, string[]>;
    avatar: string;
    created_by?: string | undefined;
    updated_by?: string | undefined;
}, {
    id: string;
    title: string;
    created_at: string;
    updated_at: string;
    description: string;
    instructions: string;
    tool_set: Record<string, string[]>;
    avatar: string;
    created_by?: string | undefined;
    updated_by?: string | undefined;
}>;
/**
 * AGENTS Collection Binding
 *
 * Collection bindings for agents (read-only).
 * Provides LIST and GET operations for AI agents.
 */
declare const AGENTS_COLLECTION_BINDING: ({
    name: "COLLECTION_AGENTS_LIST";
    inputSchema: typeof CollectionListInputSchema;
    outputSchema: z.ZodObject<{
        items: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>, "many">;
        totalCount: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        items: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }[];
        totalCount?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        items: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }[];
        totalCount?: number | undefined;
        hasMore?: boolean | undefined;
    }>;
} | {
    name: "COLLECTION_AGENTS_GET";
    inputSchema: typeof CollectionGetInputSchema;
    outputSchema: z.ZodObject<{
        item: z.ZodNullable<z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        } | null;
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        } | null;
    }>;
} | {
    name: "COLLECTION_AGENTS_CREATE";
    inputSchema: z.ZodObject<{
        data: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        data: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        data: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    outputSchema: z.ZodObject<{
        item: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    opt: true;
} | {
    name: "COLLECTION_AGENTS_UPDATE";
    inputSchema: z.ZodObject<{
        id: z.ZodString;
        data: z.ZodObject<{
            [x: string]: z.ZodOptional<any>;
        }, any, any, {
            [x: string]: any;
        }, {
            [x: string]: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        data: {
            [x: string]: any;
        };
    }, {
        id: string;
        data: {
            [x: string]: any;
        };
    }>;
    outputSchema: z.ZodObject<{
        item: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    opt: true;
} | {
    name: "COLLECTION_AGENTS_DELETE";
    inputSchema: typeof CollectionDeleteInputSchema;
    outputSchema: z.ZodObject<{
        item: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    opt: true;
})[];
/**
 * AGENTS Binding
 *
 * Defines the interface for AI agent providers.
 * Any MCP that implements this binding can provide configurable AI agents.
 *
 * Required tools:
 * - COLLECTION_AGENTS_LIST: List available AI agents with their configurations
 * - COLLECTION_AGENTS_GET: Get a single agent by ID (includes instructions and tool_set)
 */
declare const AGENTS_BINDING: readonly ({
    name: "COLLECTION_AGENTS_LIST";
    inputSchema: typeof CollectionListInputSchema;
    outputSchema: z.ZodObject<{
        items: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>, "many">;
        totalCount: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        items: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }[];
        totalCount?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        items: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }[];
        totalCount?: number | undefined;
        hasMore?: boolean | undefined;
    }>;
} | {
    name: "COLLECTION_AGENTS_GET";
    inputSchema: typeof CollectionGetInputSchema;
    outputSchema: z.ZodObject<{
        item: z.ZodNullable<z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        } | null;
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        } | null;
    }>;
} | {
    name: "COLLECTION_AGENTS_CREATE";
    inputSchema: z.ZodObject<{
        data: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        data: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        data: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    outputSchema: z.ZodObject<{
        item: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    opt: true;
} | {
    name: "COLLECTION_AGENTS_UPDATE";
    inputSchema: z.ZodObject<{
        id: z.ZodString;
        data: z.ZodObject<{
            [x: string]: z.ZodOptional<any>;
        }, any, any, {
            [x: string]: any;
        }, {
            [x: string]: any;
        }>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        data: {
            [x: string]: any;
        };
    }, {
        id: string;
        data: {
            [x: string]: any;
        };
    }>;
    outputSchema: z.ZodObject<{
        item: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    opt: true;
} | {
    name: "COLLECTION_AGENTS_DELETE";
    inputSchema: typeof CollectionDeleteInputSchema;
    outputSchema: z.ZodObject<{
        item: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
            created_at: z.ZodString;
            updated_at: z.ZodString;
            created_by: z.ZodOptional<z.ZodString>;
            updated_by: z.ZodOptional<z.ZodString>;
        } & {
            description: z.ZodString;
            instructions: z.ZodString;
            tool_set: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
            avatar: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }, {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }, {
        item: {
            id: string;
            title: string;
            created_at: string;
            updated_at: string;
            description: string;
            instructions: string;
            tool_set: Record<string, string[]>;
            avatar: string;
            created_by?: string | undefined;
            updated_by?: string | undefined;
        };
    }>;
    opt: true;
})[];

export { AGENTS_BINDING, AGENTS_COLLECTION_BINDING, AgentSchema };
