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 ListAirtableTablesToolParamsSchema: z.ZodObject<{
    baseId: z.ZodString;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    baseId: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    baseId: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>;
type ListAirtableTablesToolParamsInput = z.input<typeof ListAirtableTablesToolParamsSchema>;
type ListAirtableTablesToolParams = z.output<typeof ListAirtableTablesToolParamsSchema>;
declare const ListAirtableTablesToolResultSchema: z.ZodObject<{
    baseId: z.ZodOptional<z.ZodString>;
    baseName: z.ZodOptional<z.ZodString>;
    tables: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            type: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: string;
            name: string;
            id: string;
        }, {
            type: string;
            name: string;
            id: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        id: string;
        description?: string | undefined;
        fields?: {
            type: string;
            name: string;
            id: string;
        }[] | undefined;
    }, {
        name: string;
        id: string;
        description?: string | undefined;
        fields?: {
            type: string;
            name: string;
            id: string;
        }[] | undefined;
    }>, "many">>;
    success: z.ZodBoolean;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    success: boolean;
    error: string;
    tables?: {
        name: string;
        id: string;
        description?: string | undefined;
        fields?: {
            type: string;
            name: string;
            id: string;
        }[] | undefined;
    }[] | undefined;
    baseId?: string | undefined;
    baseName?: string | undefined;
}, {
    success: boolean;
    error: string;
    tables?: {
        name: string;
        id: string;
        description?: string | undefined;
        fields?: {
            type: string;
            name: string;
            id: string;
        }[] | undefined;
    }[] | undefined;
    baseId?: string | undefined;
    baseName?: string | undefined;
}>;
type ListAirtableTablesToolResult = z.output<typeof ListAirtableTablesToolResultSchema>;
/**
 * Tool to list tables in an Airtable base.
 * Used by AI to help users configure Airtable triggers for specific tables.
 */
export declare class ListAirtableTablesTool extends ToolBubble<ListAirtableTablesToolParams, ListAirtableTablesToolResult> {
    static readonly type: "tool";
    static readonly bubbleName = "list-airtable-tables-tool";
    static readonly schema: z.ZodObject<{
        baseId: z.ZodString;
        credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        baseId: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        baseId: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>;
    static readonly resultSchema: z.ZodObject<{
        baseId: z.ZodOptional<z.ZodString>;
        baseName: z.ZodOptional<z.ZodString>;
        tables: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
                type: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: string;
                name: string;
                id: string;
            }, {
                type: string;
                name: string;
                id: string;
            }>, "many">>;
        }, "strip", z.ZodTypeAny, {
            name: string;
            id: string;
            description?: string | undefined;
            fields?: {
                type: string;
                name: string;
                id: string;
            }[] | undefined;
        }, {
            name: string;
            id: string;
            description?: string | undefined;
            fields?: {
                type: string;
                name: string;
                id: string;
            }[] | undefined;
        }>, "many">>;
        success: z.ZodBoolean;
        error: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        success: boolean;
        error: string;
        tables?: {
            name: string;
            id: string;
            description?: string | undefined;
            fields?: {
                type: string;
                name: string;
                id: string;
            }[] | undefined;
        }[] | undefined;
        baseId?: string | undefined;
        baseName?: string | undefined;
    }, {
        success: boolean;
        error: string;
        tables?: {
            name: string;
            id: string;
            description?: string | undefined;
            fields?: {
                type: string;
                name: string;
                id: string;
            }[] | undefined;
        }[] | undefined;
        baseId?: string | undefined;
        baseName?: string | undefined;
    }>;
    static readonly shortDescription = "Lists tables in an Airtable base for trigger configuration";
    static readonly longDescription = "\n    A tool that retrieves all tables in a specific Airtable base.\n\n    Use this tool when:\n    - User wants to set up an Airtable trigger for a specific table\n    - User mentions a table name and you need to find its ID\n    - You need to show the user what tables are available in their base\n\n    Returns:\n    - List of tables with their IDs, names, descriptions, and field information\n\n    Requires:\n    - AIRTABLE_OAUTH credential to be connected\n    - A valid baseId (use list-airtable-bases-tool first)\n  ";
    static readonly alias = "airtable-tables";
    constructor(params: ListAirtableTablesToolParamsInput, context?: BubbleContext);
    performAction(context?: BubbleContext): Promise<ListAirtableTablesToolResult>;
}
export {};
//# sourceMappingURL=list-airtable-tables-tool.d.ts.map