import { z } from 'zod';
import { ToolBubble } from '../../types/tool-bubble-class.js';
import type { BubbleContext } from '../../types/bubble.js';
import { CredentialType } from '@bubblelab/shared-schemas';
declare const ListAirtableBasesToolParamsSchema: z.ZodObject<{
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>;
type ListAirtableBasesToolParamsInput = z.input<typeof ListAirtableBasesToolParamsSchema>;
type ListAirtableBasesToolParams = z.output<typeof ListAirtableBasesToolParamsSchema>;
declare const ListAirtableBasesToolResultSchema: z.ZodObject<{
    bases: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        permissionLevel: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        name: string;
        id: string;
        permissionLevel: string;
    }, {
        name: string;
        id: string;
        permissionLevel: string;
    }>, "many">>;
    success: z.ZodBoolean;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    bases?: {
        name: string;
        id: string;
        permissionLevel: string;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    bases?: {
        name: string;
        id: string;
        permissionLevel: string;
    }[] | undefined;
}>;
type ListAirtableBasesToolResult = z.output<typeof ListAirtableBasesToolResultSchema>;
/**
 * Tool to list Airtable bases accessible by the user.
 * Used by AI to help users configure Airtable triggers.
 */
export declare class ListAirtableBasesTool extends ToolBubble<ListAirtableBasesToolParams, ListAirtableBasesToolResult> {
    static readonly type: "tool";
    static readonly bubbleName = "list-airtable-bases-tool";
    static readonly schema: z.ZodObject<{
        credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>;
    static readonly resultSchema: z.ZodObject<{
        bases: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            permissionLevel: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string;
            id: string;
            permissionLevel: string;
        }, {
            name: string;
            id: string;
            permissionLevel: string;
        }>, "many">>;
        success: z.ZodBoolean;
        error: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        error: string;
        success: boolean;
        bases?: {
            name: string;
            id: string;
            permissionLevel: string;
        }[] | undefined;
    }, {
        error: string;
        success: boolean;
        bases?: {
            name: string;
            id: string;
            permissionLevel: string;
        }[] | undefined;
    }>;
    static readonly shortDescription = "Lists Airtable bases accessible by the user for trigger configuration";
    static readonly longDescription = "\n    A tool that retrieves all Airtable bases the user has access to.\n\n    Use this tool when:\n    - User wants to set up an Airtable trigger (record created/updated/deleted)\n    - You need to find which base contains a specific table\n    - User mentions an Airtable base by name and you need to find its ID\n\n    Returns:\n    - List of bases with their IDs, names, and permission levels\n\n    Requires: AIRTABLE_OAUTH credential to be connected.\n  ";
    static readonly alias = "airtable-bases";
    constructor(params: ListAirtableBasesToolParamsInput, context?: BubbleContext);
    performAction(context?: BubbleContext): Promise<ListAirtableBasesToolResult>;
}
export {};
//# sourceMappingURL=list-airtable-bases-tool.d.ts.map