import { z } from 'zod';
import { ToolBubble } from '../../types/tool-bubble-class.js';
import type { BubbleContext } from '../../types/bubble.js';
declare const ListCapabilitiesToolParamsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
type ListCapabilitiesToolParamsInput = z.input<typeof ListCapabilitiesToolParamsSchema>;
type ListCapabilitiesToolParams = z.output<typeof ListCapabilitiesToolParamsSchema>;
type ListCapabilitiesToolResult = z.output<typeof ListCapabilitiesToolResultSchema>;
declare const ListCapabilitiesToolResultSchema: z.ZodObject<{
    capabilities: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        description: z.ZodString;
        category: z.ZodOptional<z.ZodString>;
        requiredCredentials: z.ZodArray<z.ZodString, "many">;
        optionalCredentials: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        inputs: z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            description: string;
            name: string;
        }, {
            description: string;
            name: string;
        }>, "many">;
        tools: z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            description: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            description: string;
            name: string;
        }, {
            description: string;
            name: string;
        }>, "many">;
        delegationHint: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        description: string;
        name: string;
        tools: {
            description: string;
            name: string;
        }[];
        id: string;
        inputs: {
            description: string;
            name: string;
        }[];
        requiredCredentials: string[];
        category?: string | undefined;
        optionalCredentials?: string[] | undefined;
        delegationHint?: string | undefined;
    }, {
        description: string;
        name: string;
        tools: {
            description: string;
            name: string;
        }[];
        id: string;
        inputs: {
            description: string;
            name: string;
        }[];
        requiredCredentials: string[];
        category?: string | undefined;
        optionalCredentials?: string[] | undefined;
        delegationHint?: string | undefined;
    }>, "many">;
    totalCount: z.ZodNumber;
    success: z.ZodBoolean;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    success: boolean;
    error: string;
    capabilities: {
        description: string;
        name: string;
        tools: {
            description: string;
            name: string;
        }[];
        id: string;
        inputs: {
            description: string;
            name: string;
        }[];
        requiredCredentials: string[];
        category?: string | undefined;
        optionalCredentials?: string[] | undefined;
        delegationHint?: string | undefined;
    }[];
    totalCount: number;
}, {
    success: boolean;
    error: string;
    capabilities: {
        description: string;
        name: string;
        tools: {
            description: string;
            name: string;
        }[];
        id: string;
        inputs: {
            description: string;
            name: string;
        }[];
        requiredCredentials: string[];
        category?: string | undefined;
        optionalCredentials?: string[] | undefined;
        delegationHint?: string | undefined;
    }[];
    totalCount: number;
}>;
export declare class ListCapabilitiesTool extends ToolBubble<ListCapabilitiesToolParams, ListCapabilitiesToolResult> {
    static readonly bubbleName = "list-capabilities-tool";
    static readonly schema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
    static readonly resultSchema: z.ZodObject<{
        capabilities: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            description: z.ZodString;
            category: z.ZodOptional<z.ZodString>;
            requiredCredentials: z.ZodArray<z.ZodString, "many">;
            optionalCredentials: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            inputs: z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                description: string;
                name: string;
            }, {
                description: string;
                name: string;
            }>, "many">;
            tools: z.ZodArray<z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                description: string;
                name: string;
            }, {
                description: string;
                name: string;
            }>, "many">;
            delegationHint: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            description: string;
            name: string;
            tools: {
                description: string;
                name: string;
            }[];
            id: string;
            inputs: {
                description: string;
                name: string;
            }[];
            requiredCredentials: string[];
            category?: string | undefined;
            optionalCredentials?: string[] | undefined;
            delegationHint?: string | undefined;
        }, {
            description: string;
            name: string;
            tools: {
                description: string;
                name: string;
            }[];
            id: string;
            inputs: {
                description: string;
                name: string;
            }[];
            requiredCredentials: string[];
            category?: string | undefined;
            optionalCredentials?: string[] | undefined;
            delegationHint?: string | undefined;
        }>, "many">;
        totalCount: z.ZodNumber;
        success: z.ZodBoolean;
        error: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        success: boolean;
        error: string;
        capabilities: {
            description: string;
            name: string;
            tools: {
                description: string;
                name: string;
            }[];
            id: string;
            inputs: {
                description: string;
                name: string;
            }[];
            requiredCredentials: string[];
            category?: string | undefined;
            optionalCredentials?: string[] | undefined;
            delegationHint?: string | undefined;
        }[];
        totalCount: number;
    }, {
        success: boolean;
        error: string;
        capabilities: {
            description: string;
            name: string;
            tools: {
                description: string;
                name: string;
            }[];
            id: string;
            inputs: {
                description: string;
                name: string;
            }[];
            requiredCredentials: string[];
            category?: string | undefined;
            optionalCredentials?: string[] | undefined;
            delegationHint?: string | undefined;
        }[];
        totalCount: number;
    }>;
    static readonly shortDescription = "Lists all available capabilities that can be attached to AI agents";
    static readonly longDescription = "\n    A tool that lists all registered capabilities \u2014 pre-built skill packs for AIAgentBubble.\n\n    Capabilities bundle tools, system prompts, credential requirements, and user inputs\n    into a declarative config that can be attached to AI agents.\n\n    Returns information about each capability including:\n    - ID, name, description, and category\n    - Required and optional credentials\n    - User-configurable inputs\n    - Tools provided by the capability\n    - Delegation hint for when to use\n\n    Use cases:\n    - Discovering available capabilities before building AI agent workflows\n    - Checking if a pre-built capability exists instead of manually wiring tools\n    - Understanding what credentials and inputs a capability needs\n  ";
    static readonly alias = "list-caps";
    static readonly type = "tool";
    constructor(params?: ListCapabilitiesToolParamsInput, context?: BubbleContext);
    performAction(context?: BubbleContext): Promise<ListCapabilitiesToolResult>;
}
export {};
//# sourceMappingURL=list-capabilities-tool.d.ts.map