@bubblelab/bubble-core 0.1.196 → 0.1.197

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,9 +120,9 @@ export interface TransformationFunctionWorkflowNode { type: 'transformation_func
120
120
  export type WorkflowNode = BubbleWorkflowNode | ControlFlowWorkflowNode | TryCatchWorkflowNode | CodeBlockWorkflowNode | VariableDeclarationBlockNode | ReturnWorkflowNode | FunctionCallWorkflowNode | ParallelExecutionWorkflowNode | TransformationFunctionWorkflowNode; export interface ParsedWorkflow { root: WorkflowNode[]; bubbles: Record<number, ParsedBubbleWithInfo>; }
121
121
  export declare const WorkflowNodeTypeSchema: z.ZodEnum<["bubble", "if", "for", "while", "try_catch", "variable_declaration", "return", "function_call", "code_block", "parallel_execution", "transformation_function"]>; export declare const LocationSchema: z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>; export declare const BubbleWorkflowNodeSchema: z.ZodType<BubbleWorkflowNode>; export declare const ControlFlowWorkflowNodeSchema: z.ZodType<ControlFlowWorkflowNode>; export declare const TryCatchWorkflowNodeSchema: z.ZodType<TryCatchWorkflowNode>; export declare const CodeBlockWorkflowNodeSchema: z.ZodType<CodeBlockWorkflowNode>; export declare const VariableDeclarationBlockNodeSchema: z.ZodType<VariableDeclarationBlockNode>; export declare const ReturnWorkflowNodeSchema: z.ZodType<ReturnWorkflowNode>; export declare const FunctionCallWorkflowNodeSchema: z.ZodType<FunctionCallWorkflowNode>; export declare const ParallelExecutionWorkflowNodeSchema: z.ZodType<ParallelExecutionWorkflowNode>; export declare const TransformationFunctionWorkflowNodeSchema: z.ZodType<TransformationFunctionWorkflowNode>; export declare const WorkflowNodeSchema: z.ZodType<WorkflowNode>; export declare const ParsedWorkflowSchema: z.ZodObject<{ root: z.ZodArray<z.ZodType<WorkflowNode, z.ZodTypeDef, WorkflowNode>, "many">; bubbles: z.ZodRecord<z.ZodNumber, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodType<BubbleName>; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ location: z.ZodOptional<z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>>; variableId: z.ZodOptional<z.ZodNumber>; name: z.ZodString; value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>; type: z.ZodNativeEnum<typeof BubbleParameterType>; source: z.ZodOptional<z.ZodEnum<["object-property", "first-arg", "spread"]>>; }, "strip", z.ZodTypeAny, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; dependencies: z.ZodOptional<z.ZodArray<z.ZodType<BubbleName, z.ZodTypeDef, BubbleName>, "many">>; dependencyGraph: z.ZodOptional<z.ZodType<DependencyGraphNode, z.ZodTypeDef, DependencyGraphNode>>; variableId: z.ZodNumber; nodeType: z.ZodEnum<["service", "tool", "workflow", "unknown"]>; location: z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>; description: z.ZodOptional<z.ZodString>; invocationCallSiteKey: z.ZodOptional<z.ZodString>; clonedFromVariableId: z.ZodOptional<z.ZodNumber>; isInsideCustomTool: z.ZodOptional<z.ZodBoolean>; containingCustomToolId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: BubbleName; description?: string | undefined; dependencies?: BubbleName[] | undefined; dependencyGraph?: DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: BubbleName; description?: string | undefined; dependencies?: BubbleName[] | undefined; dependencyGraph?: DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { root: WorkflowNode[]; bubbles: Record<number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: BubbleName; description?: string | undefined; dependencies?: BubbleName[] | undefined; dependencyGraph?: DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>; }, { root: WorkflowNode[]; bubbles: Record<number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: BubbleName; description?: string | undefined; dependencies?: BubbleName[] | undefined; dependencyGraph?: DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>; }>; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
122
122
  export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare const generateBubbleFlowCodeSchema: z.ZodObject<{ prompt: z.ZodString; flowId: z.ZodOptional<z.ZodNumber>; messages: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>]>, "many">>; planContext: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { prompt: string; flowId?: number | undefined; messages?: ({ content: string; type: "user"; timestamp: string; id: string; } | { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; } | { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; } | { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; } | { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; } | { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; } | { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; } | { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; } | { content: string; type: "system"; timestamp: string; id: string; } | { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; })[] | undefined; planContext?: string | undefined; }, { prompt: string; flowId?: number | undefined; messages?: ({ content: string; type: "user"; timestamp: string; id: string; } | { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; } | { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; } | { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; } | { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; } | { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; } | { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; } | { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; } | { content: string; type: "system"; timestamp: string; id: string; } | { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; })[] | undefined; planContext?: string | undefined; }>; export declare const generateBubbleFlowCodeResponseSchema: z.ZodObject<{ generatedCode: z.ZodString; isValid: z.ZodBoolean; success: z.ZodBoolean; error: z.ZodString; bubbleParameters: z.ZodRecord<z.ZodString, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodType<import("./types").BubbleName>; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ location: z.ZodOptional<z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>>; variableId: z.ZodOptional<z.ZodNumber>; name: z.ZodString; value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>; type: z.ZodNativeEnum<typeof BubbleParameterType>; source: z.ZodOptional<z.ZodEnum<["object-property", "first-arg", "spread"]>>; }, "strip", z.ZodTypeAny, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; dependencies: z.ZodOptional<z.ZodArray<z.ZodType<import("./types").BubbleName, z.ZodTypeDef, import("./types").BubbleName>, "many">>; dependencyGraph: z.ZodOptional<z.ZodType<import("./bubble-definition-schema").DependencyGraphNode, z.ZodTypeDef, import("./bubble-definition-schema").DependencyGraphNode>>; variableId: z.ZodNumber; nodeType: z.ZodEnum<["service", "tool", "workflow", "unknown"]>; location: z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>; description: z.ZodOptional<z.ZodString>; invocationCallSiteKey: z.ZodOptional<z.ZodString>; clonedFromVariableId: z.ZodOptional<z.ZodNumber>; isInsideCustomTool: z.ZodOptional<z.ZodBoolean>; containingCustomToolId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>>; requiredCredentials: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { error: string; success: boolean; requiredCredentials: Record<string, string[]>; bubbleParameters: Record<string, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>; generatedCode: string; isValid: boolean; }, { error: string; success: boolean; requiredCredentials: Record<string, string[]>; bubbleParameters: Record<string, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>; generatedCode: string; isValid: boolean; }>; export declare const GenerationResultSchema: z.ZodObject<{ generatedCode: z.ZodString; isValid: z.ZodBoolean; success: z.ZodBoolean; error: z.ZodString; flowId: z.ZodOptional<z.ZodNumber>; toolCalls: z.ZodArray<z.ZodUnknown, "many">; summary: z.ZodDefault<z.ZodString>; inputsSchema: z.ZodDefault<z.ZodString>; serviceUsage: z.ZodOptional<z.ZodArray<z.ZodObject<{ service: z.ZodNativeEnum<typeof CredentialType>; subService: z.ZodOptional<z.ZodString>; unit: z.ZodString; usage: z.ZodNumber; unitCost: z.ZodNumber; totalCost: z.ZodNumber; }, "strip", z.ZodTypeAny, { service: CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }, { service: CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }>, "many">>; bubbleCount: z.ZodOptional<z.ZodNumber>; codeLength: z.ZodOptional<z.ZodNumber>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodType<import("./types").BubbleName>; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ location: z.ZodOptional<z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>>; variableId: z.ZodOptional<z.ZodNumber>; name: z.ZodString; value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>; type: z.ZodNativeEnum<typeof BubbleParameterType>; source: z.ZodOptional<z.ZodEnum<["object-property", "first-arg", "spread"]>>; }, "strip", z.ZodTypeAny, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; dependencies: z.ZodOptional<z.ZodArray<z.ZodType<import("./types").BubbleName, z.ZodTypeDef, import("./types").BubbleName>, "many">>; dependencyGraph: z.ZodOptional<z.ZodType<import("./bubble-definition-schema").DependencyGraphNode, z.ZodTypeDef, import("./bubble-definition-schema").DependencyGraphNode>>; variableId: z.ZodNumber; nodeType: z.ZodEnum<["service", "tool", "workflow", "unknown"]>; location: z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>; description: z.ZodOptional<z.ZodString>; invocationCallSiteKey: z.ZodOptional<z.ZodString>; clonedFromVariableId: z.ZodOptional<z.ZodNumber>; isInsideCustomTool: z.ZodOptional<z.ZodBoolean>; containingCustomToolId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>>>; }, "strip", z.ZodTypeAny, { error: string; success: boolean; summary: string; generatedCode: string; isValid: boolean; toolCalls: unknown[]; inputsSchema: string; serviceUsage?: { service: CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[] | undefined; flowId?: number | undefined; bubbleCount?: number | undefined; codeLength?: number | undefined; bubbleParameters?: Record<string | number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }> | undefined; }, { error: string; success: boolean; generatedCode: string; isValid: boolean; toolCalls: unknown[]; serviceUsage?: { service: CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[] | undefined; summary?: string | undefined; flowId?: number | undefined; bubbleCount?: number | undefined; codeLength?: number | undefined; bubbleParameters?: Record<string | number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types").BubbleName; description?: string | undefined; dependencies?: import("./types").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }> | undefined; inputsSchema?: string | undefined; }>; export declare const generateBubbleFlowTemplateSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; roles: z.ZodString; useCase: z.ZodLiteral<"slack-data-scientist">; verbosity: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeQuery: z.ZodOptional<z.ZodBoolean>; includeExplanation: z.ZodOptional<z.ZodBoolean>; maxQueries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { name: string; description: string; roles: string; useCase: "slack-data-scientist"; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; maxQueries?: number | undefined; }, { name: string; description: string; roles: string; useCase: "slack-data-scientist"; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; maxQueries?: number | undefined; }>; export declare const generateDocumentGenerationTemplateSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodDefault<z.ZodString>; outputDescription: z.ZodString; outputFormat: z.ZodOptional<z.ZodEnum<["html", "csv", "json"]>>; conversionOptions: z.ZodOptional<z.ZodObject<{ preserveStructure: z.ZodOptional<z.ZodBoolean>; includeVisualDescriptions: z.ZodOptional<z.ZodBoolean>; extractNumericalData: z.ZodOptional<z.ZodBoolean>; combinePages: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; }, { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; }>>; imageOptions: z.ZodOptional<z.ZodObject<{ format: z.ZodOptional<z.ZodEnum<["png", "jpg", "jpeg"]>>; quality: z.ZodOptional<z.ZodNumber>; dpi: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { format?: "png" | "jpg" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; }, { format?: "png" | "jpg" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; }>>; aiOptions: z.ZodOptional<z.ZodObject<{ model: z.ZodOptional<z.ZodString>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; jsonMode: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxTokens?: number | undefined; temperature?: number | undefined; jsonMode?: boolean | undefined; }, { model?: string | undefined; maxTokens?: number | undefined; temperature?: number | undefined; jsonMode?: boolean | undefined; }>>; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: string; description: string; outputDescription: string; metadata?: Record<string, unknown> | undefined; outputFormat?: "html" | "csv" | "json" | undefined; conversionOptions?: { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; } | undefined; imageOptions?: { format?: "png" | "jpg" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; } | undefined; aiOptions?: { model?: string | undefined; maxTokens?: number | undefined; temperature?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }, { name: string; outputDescription: string; description?: string | undefined; metadata?: Record<string, unknown> | undefined; outputFormat?: "html" | "csv" | "json" | undefined; conversionOptions?: { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; } | undefined; imageOptions?: { format?: "png" | "jpg" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; } | undefined; aiOptions?: { model?: string | undefined; maxTokens?: number | undefined; temperature?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>; export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; description: z.ZodString; eventType: z.ZodString; displayedBubbleParameters: z.ZodRecord<z.ZodString, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodString; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ name: z.ZodString; value: z.ZodUnknown; type: z.ZodNativeEnum<typeof BubbleParameterType>; }, "strip", z.ZodTypeAny, { name: string; type: BubbleParameterType; value?: unknown; }, { name: string; type: BubbleParameterType; value?: unknown; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; }, "strip", z.ZodTypeAny, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }>>; bubbleParameters: z.ZodRecord<z.ZodString, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodString; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ name: z.ZodString; value: z.ZodUnknown; type: z.ZodNativeEnum<typeof BubbleParameterType>; }, "strip", z.ZodTypeAny, { name: string; type: BubbleParameterType; value?: unknown; }, { name: string; type: BubbleParameterType; value?: unknown; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; }, "strip", z.ZodTypeAny, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }>>; requiredCredentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">>>; createdAt: z.ZodString; updatedAt: z.ZodString; webhook: z.ZodOptional<z.ZodObject<{ id: z.ZodNumber; url: z.ZodString; path: z.ZodString; active: z.ZodBoolean; }, "strip", z.ZodTypeAny, { path: string; id: number; url: string; active: boolean; }, { path: string; id: number; url: string; active: boolean; }>>; }, "strip", z.ZodTypeAny, { name: string; description: string; id: number; eventType: string; updatedAt: string; bubbleParameters: Record<string, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }>; displayedBubbleParameters: Record<string, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }>; createdAt: string; requiredCredentials?: Record<string, CredentialType[]> | undefined; webhook?: { path: string; id: number; url: string; active: boolean; } | undefined; }, { name: string; description: string; id: number; eventType: string; updatedAt: string; bubbleParameters: Record<string, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }>; displayedBubbleParameters: Record<string, { variableName: string; className: string; parameters: { name: string; type: BubbleParameterType; value?: unknown; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: string; }>; createdAt: string; requiredCredentials?: Record<string, CredentialType[]> | undefined; webhook?: { path: string; id: number; url: string; active: boolean; } | undefined; }>; export type GenerateBubbleFlowCodeResponse = z.infer<typeof generateBubbleFlowCodeResponseSchema>; export type GenerateBubbleFlowTemplateRequest = z.infer<typeof generateBubbleFlowTemplateSchema>; export type GenerateDocumentGenerationTemplateRequest = z.infer<typeof generateDocumentGenerationTemplateSchema>; export type BubbleFlowTemplateResponse = z.infer<typeof bubbleFlowTemplateResponseSchema>; export type GenerationResult = z.infer<typeof GenerationResultSchema>; export declare const webhookExecutionResponseSchema: z.ZodObject<{ executionId: z.ZodNumber; success: z.ZodBoolean; data: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; webhook: z.ZodObject<{ userId: z.ZodString; path: z.ZodString; triggeredAt: z.ZodString; method: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; userId: string; triggeredAt: string; method: string; }, { path: string; userId: string; triggeredAt: string; method: string; }>; }, "strip", z.ZodTypeAny, { success: boolean; executionId: number; webhook: { path: string; userId: string; triggeredAt: string; method: string; }; error?: string | undefined; data?: unknown; }, { success: boolean; executionId: number; webhook: { path: string; userId: string; triggeredAt: string; method: string; }; error?: string | undefined; data?: unknown; }>; export declare const webhookResponseSchema: z.ZodObject<{ challenge: z.ZodOptional<z.ZodString>; executionId: z.ZodOptional<z.ZodNumber>; success: z.ZodOptional<z.ZodBoolean>; data: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodUndefined]>>; error: z.ZodOptional<z.ZodString>; webhook: z.ZodOptional<z.ZodObject<{ userId: z.ZodString; path: z.ZodString; triggeredAt: z.ZodString; method: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; userId: string; triggeredAt: string; method: string; }, { path: string; userId: string; triggeredAt: string; method: string; }>>; }, "strip", z.ZodTypeAny, { error?: string | undefined; challenge?: string | undefined; success?: boolean | undefined; executionId?: number | undefined; data?: Record<string, unknown> | undefined; webhook?: { path: string; userId: string; triggeredAt: string; method: string; } | undefined; }, { error?: string | undefined; challenge?: string | undefined; success?: boolean | undefined; executionId?: number | undefined; data?: Record<string, unknown> | undefined; webhook?: { path: string; userId: string; triggeredAt: string; method: string; } | undefined; }>; export type WebhookResponse = z.infer<typeof webhookResponseSchema>; export type WebhookExecutionResponse = z.infer<typeof webhookExecutionResponseSchema>; export declare const tokenUsageSchema: z.ZodObject<{ modelName: z.ZodOptional<z.ZodString>; inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, "strip", z.ZodTypeAny, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }>; export type TokenUsage = z.infer<typeof tokenUsageSchema>; export declare const usageSchema: z.ZodObject<{ executionCount: z.ZodNumber; tokenUsage: z.ZodArray<z.ZodObject<{ modelName: z.ZodOptional<z.ZodString>; inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, "strip", z.ZodTypeAny, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }>, "many">; serviceUsage: z.ZodArray<z.ZodObject<{ service: z.ZodNativeEnum<typeof import("./types").CredentialType>; subService: z.ZodOptional<z.ZodString>; unit: z.ZodString; usage: z.ZodNumber; unitCost: z.ZodNumber; totalCost: z.ZodNumber; }, "strip", z.ZodTypeAny, { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }, { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }>, "many">; estimatedMonthlyCost: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost?: number | undefined; }, { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost?: number | undefined; }>; export type Usage = z.infer<typeof usageSchema>; export declare const billingOrganizationSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; slug: z.ZodString; type: z.ZodOptional<z.ZodEnum<["personal", "organization"]>>; role: z.ZodEnum<["owner", "admin", "member"]>; memberCount: z.ZodNumber; }, "strip", z.ZodTypeAny, { role: "owner" | "admin" | "member"; name: string; id: number; slug: string; memberCount: number; type?: "personal" | "organization" | undefined; }, { role: "owner" | "admin" | "member"; name: string; id: number; slug: string; memberCount: number; type?: "personal" | "organization" | undefined; }>; export type BillingOrganization = z.infer<typeof billingOrganizationSchema>; export declare const hackathonOfferSchema: z.ZodObject<{ isActive: z.ZodBoolean; expiresAt: z.ZodString; redeemedAt: z.ZodString; }, "strip", z.ZodTypeAny, { isActive: boolean; expiresAt: string; redeemedAt: string; }, { isActive: boolean; expiresAt: string; redeemedAt: string; }>; export type HackathonOffer = z.infer<typeof hackathonOfferSchema>; export declare const specialOfferSchema: z.ZodObject<{ isActive: z.ZodBoolean; plan: z.ZodString; expiresAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { isActive: boolean; plan: string; expiresAt: string | null; }, { isActive: boolean; plan: string; expiresAt: string | null; }>; export type SpecialOffer = z.infer<typeof specialOfferSchema>; export declare const redeemCouponRequestSchema: z.ZodObject<{ code: z.ZodString; }, "strip", z.ZodTypeAny, { code: string; }, { code: string; }>; export type RedeemCouponRequest = z.infer<typeof redeemCouponRequestSchema>; export declare const redeemCouponResponseSchema: z.ZodObject<{ success: z.ZodBoolean; message: z.ZodString; expiresAt: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; success: boolean; expiresAt?: string | undefined; }, { message: string; success: boolean; expiresAt?: string | undefined; }>; export type RedeemCouponResponse = z.infer<typeof redeemCouponResponseSchema>; export declare const subscriptionStatusResponseSchema: z.ZodObject<{ userId: z.ZodString; plan: z.ZodString; planDisplayName: z.ZodString; features: z.ZodArray<z.ZodString, "many">; organization: z.ZodOptional<z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; slug: z.ZodString; type: z.ZodOptional<z.ZodEnum<["personal", "organization"]>>; role: z.ZodEnum<["owner", "admin", "member"]>; memberCount: z.ZodNumber; }, "strip", z.ZodTypeAny, { role: "owner" | "admin" | "member"; name: string; id: number; slug: string; memberCount: number; type?: "personal" | "organization" | undefined; }, { role: "owner" | "admin" | "member"; name: string; id: number; slug: string; memberCount: number; type?: "personal" | "organization" | undefined; }>>; usage: z.ZodObject<{ executionCount: z.ZodNumber; executionLimit: z.ZodNumber; creditLimit: z.ZodNumber; activeFlowLimit: z.ZodNumber; estimatedMonthlyCost: z.ZodNumber; resetDate: z.ZodString; tokenUsage: z.ZodArray<z.ZodObject<{ modelName: z.ZodOptional<z.ZodString>; inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, "strip", z.ZodTypeAny, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }>, "many">; serviceUsage: z.ZodArray<z.ZodObject<{ service: z.ZodNativeEnum<typeof import("./types").CredentialType>; subService: z.ZodOptional<z.ZodString>; unit: z.ZodString; usage: z.ZodNumber; unitCost: z.ZodNumber; totalCost: z.ZodNumber; }, "strip", z.ZodTypeAny, { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }, { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost: number; executionLimit: number; creditLimit: number; activeFlowLimit: number; resetDate: string; }, { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost: number; executionLimit: number; creditLimit: number; activeFlowLimit: number; resetDate: string; }>; personalUsage: z.ZodOptional<z.ZodObject<{ executionCount: z.ZodNumber; tokenUsage: z.ZodArray<z.ZodObject<{ modelName: z.ZodOptional<z.ZodString>; inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, "strip", z.ZodTypeAny, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }, { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }>, "many">; serviceUsage: z.ZodArray<z.ZodObject<{ service: z.ZodNativeEnum<typeof import("./types").CredentialType>; subService: z.ZodOptional<z.ZodString>; unit: z.ZodString; usage: z.ZodNumber; unitCost: z.ZodNumber; totalCost: z.ZodNumber; }, "strip", z.ZodTypeAny, { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }, { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }>, "many">; estimatedMonthlyCost: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost?: number | undefined; }, { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost?: number | undefined; }>>; isActive: z.ZodBoolean; hackathonOffer: z.ZodOptional<z.ZodObject<{ isActive: z.ZodBoolean; expiresAt: z.ZodString; redeemedAt: z.ZodString; }, "strip", z.ZodTypeAny, { isActive: boolean; expiresAt: string; redeemedAt: string; }, { isActive: boolean; expiresAt: string; redeemedAt: string; }>>; specialOffer: z.ZodOptional<z.ZodObject<{ isActive: z.ZodBoolean; plan: z.ZodString; expiresAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { isActive: boolean; plan: string; expiresAt: string | null; }, { isActive: boolean; plan: string; expiresAt: string | null; }>>; }, "strip", z.ZodTypeAny, { usage: { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost: number; executionLimit: number; creditLimit: number; activeFlowLimit: number; resetDate: string; }; userId: string; isActive: boolean; plan: string; planDisplayName: string; features: string[]; organization?: { role: "owner" | "admin" | "member"; name: string; id: number; slug: string; memberCount: number; type?: "personal" | "organization" | undefined; } | undefined; personalUsage?: { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost?: number | undefined; } | undefined; hackathonOffer?: { isActive: boolean; expiresAt: string; redeemedAt: string; } | undefined; specialOffer?: { isActive: boolean; plan: string; expiresAt: string | null; } | undefined; }, { usage: { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost: number; executionLimit: number; creditLimit: number; activeFlowLimit: number; resetDate: string; }; userId: string; isActive: boolean; plan: string; planDisplayName: string; features: string[]; organization?: { role: "owner" | "admin" | "member"; name: string; id: number; slug: string; memberCount: number; type?: "personal" | "organization" | undefined; } | undefined; personalUsage?: { serviceUsage: { service: import("./types").CredentialType; unit: string; usage: number; unitCost: number; totalCost: number; subService?: string | undefined; }[]; executionCount: number; tokenUsage: { inputTokens: number; outputTokens: number; totalTokens: number; modelName?: string | undefined; }[]; estimatedMonthlyCost?: number | undefined; } | undefined; hackathonOffer?: { isActive: boolean; expiresAt: string; redeemedAt: string; } | undefined; specialOffer?: { isActive: boolean; plan: string; expiresAt: string | null; } | undefined; }>; export type SubscriptionStatusResponse = z.infer<typeof subscriptionStatusResponseSchema>; export declare const userUsageItemSchema: z.ZodObject<{ userId: z.ZodString; firstName: z.ZodOptional<z.ZodString>; lastName: z.ZodOptional<z.ZodString>; userEmail: z.ZodOptional<z.ZodString>; role: z.ZodEnum<["owner", "admin", "member"]>; executionCount: z.ZodNumber; totalCost: z.ZodNumber; }, "strip", z.ZodTypeAny, { role: "owner" | "admin" | "member"; totalCost: number; userId: string; executionCount: number; firstName?: string | undefined; lastName?: string | undefined; userEmail?: string | undefined; }, { role: "owner" | "admin" | "member"; totalCost: number; userId: string; executionCount: number; firstName?: string | undefined; lastName?: string | undefined; userEmail?: string | undefined; }>; export type UserUsageItem = z.infer<typeof userUsageItemSchema>; export declare const orgUsageBreakdownResponseSchema: z.ZodObject<{ organizationId: z.ZodNumber; organizationName: z.ZodOptional<z.ZodString>; monthYear: z.ZodString; totalOrgCost: z.ZodNumber; totalOrgExecutions: z.ZodNumber; users: z.ZodArray<z.ZodObject<{ userId: z.ZodString; firstName: z.ZodOptional<z.ZodString>; lastName: z.ZodOptional<z.ZodString>; userEmail: z.ZodOptional<z.ZodString>; role: z.ZodEnum<["owner", "admin", "member"]>; executionCount: z.ZodNumber; totalCost: z.ZodNumber; }, "strip", z.ZodTypeAny, { role: "owner" | "admin" | "member"; totalCost: number; userId: string; executionCount: number; firstName?: string | undefined; lastName?: string | undefined; userEmail?: string | undefined; }, { role: "owner" | "admin" | "member"; totalCost: number; userId: string; executionCount: number; firstName?: string | undefined; lastName?: string | undefined; userEmail?: string | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { organizationId: number; users: { role: "owner" | "admin" | "member"; totalCost: number; userId: string; executionCount: number; firstName?: string | undefined; lastName?: string | undefined; userEmail?: string | undefined; }[]; monthYear: string; totalOrgCost: number; totalOrgExecutions: number; organizationName?: string | undefined; }, { organizationId: number; users: { role: "owner" | "admin" | "member"; totalCost: number; userId: string; executionCount: number; firstName?: string | undefined; lastName?: string | undefined; userEmail?: string | undefined; }[]; monthYear: string; totalOrgCost: number; totalOrgExecutions: number; organizationName?: string | undefined; }>; export type OrgUsageBreakdownResponse = z.infer<typeof orgUsageBreakdownResponseSchema>; export declare function isAdminOrOwner(subscription: SubscriptionStatusResponse): boolean; export declare function isMember(subscription: SubscriptionStatusResponse): boolean; export declare const errorResponseSchema: z.ZodObject<{ error: z.ZodString; details: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { error: string; details?: string | undefined; }, { error: string; details?: string | undefined; }>; export type ErrorResponse = z.infer<typeof errorResponseSchema>; export interface HealthCheckResponse { message: string; timestamp: string; }
123
- export declare const slackUrlVerificationSchema: z.ZodObject<{ token: z.ZodString; challenge: z.ZodString; type: z.ZodLiteral<"url_verification">; }, "strip", z.ZodTypeAny, { type: "url_verification"; token: string; challenge: string; }, { type: "url_verification"; token: string; challenge: string; }>; export declare const slackUrlVerificationResponseSchema: z.ZodObject<{ challenge: z.ZodString; }, "strip", z.ZodTypeAny, { challenge: string; }, { challenge: string; }>; export type SlackUrlVerificationResponse = z.infer<typeof slackUrlVerificationResponseSchema>; export declare const MilkTeaRequestSchema: z.ZodObject<{ userRequest: z.ZodString; bubbleName: z.ZodString; bubbleSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>; currentCode: z.ZodOptional<z.ZodString>; availableCredentials: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; userName: z.ZodString; insertLocation: z.ZodOptional<z.ZodString>; conversationHistory: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; }, "strip", z.ZodTypeAny, { bubbleName: string; model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; userRequest: string; bubbleSchema: Record<string, unknown>; availableCredentials: string[]; userName: string; conversationHistory: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[]; currentCode?: string | undefined; insertLocation?: string | undefined; }, { bubbleName: string; userRequest: string; bubbleSchema: Record<string, unknown>; userName: string; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; currentCode?: string | undefined; availableCredentials?: string[] | undefined; insertLocation?: string | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; }>; export declare const MilkTeaResponseSchema: z.ZodObject<{ type: z.ZodEnum<["code", "question", "reject"]>; message: z.ZodString; snippet: z.ZodOptional<z.ZodString>; success: z.ZodBoolean; error: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; type: "code" | "question" | "reject"; success: boolean; error?: string | undefined; snippet?: string | undefined; }, { message: string; type: "code" | "question" | "reject"; success: boolean; error?: string | undefined; snippet?: string | undefined; }>; export declare const MilkTeaAgentOutputSchema: z.ZodObject<{ type: z.ZodEnum<["code", "question", "reject"]>; message: z.ZodString; snippet: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; type: "code" | "question" | "reject"; snippet?: string | undefined; }, { message: string; type: "code" | "question" | "reject"; snippet?: string | undefined; }>; export type MilkTeaRequest = z.infer<typeof MilkTeaRequestSchema>; export type MilkTeaResponse = z.infer<typeof MilkTeaResponseSchema>; export type MilkTeaAgentOutput = z.infer<typeof MilkTeaAgentOutputSchema>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
124
- export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare const PEARL_DEFAULT_MODEL: AvailableModel; export declare const PearlRequestSchema: z.ZodObject<{ userRequest: z.ZodString; currentCode: z.ZodOptional<z.ZodString>; userName: z.ZodString; availableVariables: z.ZodArray<z.ZodAny, "many">; conversationHistory: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; additionalContext: z.ZodOptional<z.ZodString>; uploadedFiles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; content: z.ZodString; fileType: z.ZodEnum<["image", "text"]>; }, "strip", z.ZodTypeAny, { content: string; name: string; fileType: "text" | "image"; }, { content: string; name: string; fileType: "text" | "image"; }>, "many">>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; userRequest: string; userName: string; conversationHistory: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[]; availableVariables: any[]; uploadedFiles: { content: string; name: string; fileType: "text" | "image"; }[]; currentCode?: string | undefined; additionalContext?: string | undefined; }, { userRequest: string; userName: string; availableVariables: any[]; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; currentCode?: string | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; additionalContext?: string | undefined; uploadedFiles?: { content: string; name: string; fileType: "text" | "image"; }[] | undefined; }>; export declare const PearlResponseSchema: z.ZodObject<{ type: z.ZodEnum<["code", "question", "answer", "reject"]>; message: z.ZodString; snippet: z.ZodOptional<z.ZodString>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodNumber, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodType<import("./types.js").BubbleName>; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ location: z.ZodOptional<z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>>; variableId: z.ZodOptional<z.ZodNumber>; name: z.ZodString; value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>; type: z.ZodNativeEnum<typeof import("./bubble-definition-schema.js").BubbleParameterType>; source: z.ZodOptional<z.ZodEnum<["object-property", "first-arg", "spread"]>>; }, "strip", z.ZodTypeAny, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; dependencies: z.ZodOptional<z.ZodArray<z.ZodType<import("./types.js").BubbleName, z.ZodTypeDef, import("./types.js").BubbleName>, "many">>; dependencyGraph: z.ZodOptional<z.ZodType<import("./bubble-definition-schema.js").DependencyGraphNode, z.ZodTypeDef, import("./bubble-definition-schema.js").DependencyGraphNode>>; variableId: z.ZodNumber; nodeType: z.ZodEnum<["service", "tool", "workflow", "unknown"]>; location: z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>; description: z.ZodOptional<z.ZodString>; invocationCallSiteKey: z.ZodOptional<z.ZodString>; clonedFromVariableId: z.ZodOptional<z.ZodNumber>; isInsideCustomTool: z.ZodOptional<z.ZodBoolean>; containingCustomToolId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>>>; inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; requiredCredentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">>>; success: z.ZodBoolean; error: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; type: "code" | "question" | "answer" | "reject"; success: boolean; error?: string | undefined; inputSchema?: Record<string, unknown> | undefined; requiredCredentials?: Record<string, CredentialType[]> | undefined; bubbleParameters?: Record<number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }> | undefined; snippet?: string | undefined; }, { message: string; type: "code" | "question" | "answer" | "reject"; success: boolean; error?: string | undefined; inputSchema?: Record<string, unknown> | undefined; requiredCredentials?: Record<string, CredentialType[]> | undefined; bubbleParameters?: Record<number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }> | undefined; snippet?: string | undefined; }>; export type PearlRequest = z.infer<typeof PearlRequestSchema>; export type PearlResponse = z.infer<typeof PearlResponseSchema>; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
125
- export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare const COFFEE_MAX_ITERATIONS = 30; export declare const COFFEE_MAX_QUESTIONS = 5; export declare const COFFEE_DEFAULT_MODEL: "google/gemini-3-pro-preview"; export declare const ClarificationChoiceSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>; export declare const ClarificationQuestionSchema: z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>; export declare const CoffeeClarificationEventSchema: z.ZodObject<{ questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>; export declare const CoffeeRequestExternalContextEventSchema: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; export declare const CoffeeContextAnswerSchema: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; export declare const CoffeeContextRequestInfoSchema: z.ZodObject<{ purpose: z.ZodString; flowDescription: z.ZodString; }, "strip", z.ZodTypeAny, { purpose: string; flowDescription: string; }, { purpose: string; flowDescription: string; }>; export declare const CoffeeContextEventSchema: z.ZodObject<{ status: z.ZodEnum<["gathering", "complete"]>; miniFlowDescription: z.ZodOptional<z.ZodString>; result: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { status: "gathering" | "complete"; result?: string | undefined; miniFlowDescription?: string | undefined; }, { status: "gathering" | "complete"; result?: string | undefined; miniFlowDescription?: string | undefined; }>; export declare const PlanStepSchema: z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>; export declare const CoffeePlanEventSchema: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; export declare const UserMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>; export declare const AssistantMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>; export declare const ClarificationRequestMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>; export declare const ClarificationResponseMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>; export declare const ContextRequestMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>; export declare const ContextResponseMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>; export declare const PlanMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>; export declare const PlanApprovalMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>; export declare const SystemMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>; export declare const ToolResultMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>; export declare const CoffeeMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>]>; export declare const CoffeeRequestSchema: z.ZodObject<{ prompt: z.ZodString; flowId: z.ZodOptional<z.ZodNumber>; messages: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>]>, "many">>; }, "strip", z.ZodTypeAny, { prompt: string; flowId?: number | undefined; messages?: ({ content: string; type: "user"; timestamp: string; id: string; } | { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; } | { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; } | { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; } | { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; } | { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; } | { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; } | { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; } | { content: string; type: "system"; timestamp: string; id: string; } | { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; })[] | undefined; }, { prompt: string; flowId?: number | undefined; messages?: ({ content: string; type: "user"; timestamp: string; id: string; } | { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; } | { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; } | { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; } | { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; } | { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; } | { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; } | { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; } | { content: string; type: "system"; timestamp: string; id: string; } | { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; })[] | undefined; }>; export declare const CoffeeResponseSchema: z.ZodObject<{ type: z.ZodEnum<["clarification", "plan", "context_request", "error"]>; clarification: z.ZodOptional<z.ZodObject<{ questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>>; plan: z.ZodOptional<z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>>; contextRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; error: z.ZodOptional<z.ZodString>; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { type: "error" | "context_request" | "plan" | "clarification"; success: boolean; error?: string | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; clarification?: { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; } | undefined; contextRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { type: "error" | "context_request" | "plan" | "clarification"; success: boolean; error?: string | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; clarification?: { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; } | undefined; contextRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; export declare const CoffeeAgentOutputSchema: z.ZodObject<{ action: z.ZodEnum<["askClarification", "generatePlan", "requestContext"]>; questions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; plan: z.ZodOptional<z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>>; contextRequest: z.ZodOptional<z.ZodObject<{ purpose: z.ZodString; flowDescription: z.ZodString; }, "strip", z.ZodTypeAny, { purpose: string; flowDescription: string; }, { purpose: string; flowDescription: string; }>>; }, "strip", z.ZodTypeAny, { action: "askClarification" | "generatePlan" | "requestContext"; questions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; contextRequest?: { purpose: string; flowDescription: string; } | undefined; }, { action: "askClarification" | "generatePlan" | "requestContext"; questions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; contextRequest?: { purpose: string; flowDescription: string; } | undefined; }>; export type ClarificationChoice = z.infer<typeof ClarificationChoiceSchema>; export type ClarificationQuestion = z.infer<typeof ClarificationQuestionSchema>; export type CoffeeClarificationEvent = z.infer<typeof CoffeeClarificationEventSchema>; export type CoffeeRequestExternalContextEvent = z.infer<typeof CoffeeRequestExternalContextEventSchema>; export type CoffeeContextAnswer = z.infer<typeof CoffeeContextAnswerSchema>; export type CoffeeContextEvent = z.infer<typeof CoffeeContextEventSchema>; export type CoffeeContextRequestInfo = z.infer<typeof CoffeeContextRequestInfoSchema>; export type PlanStep = z.infer<typeof PlanStepSchema>; export type CoffeePlanEvent = z.infer<typeof CoffeePlanEventSchema>; export type CoffeeRequest = z.infer<typeof CoffeeRequestSchema>; export type CoffeeResponse = z.infer<typeof CoffeeResponseSchema>; export type CoffeeAgentOutput = z.infer<typeof CoffeeAgentOutputSchema>; export type UserMessage = z.infer<typeof UserMessageSchema>; export type AssistantMessage = z.infer<typeof AssistantMessageSchema>; export type ClarificationRequestMessage = z.infer<typeof ClarificationRequestMessageSchema>; export type ClarificationResponseMessage = z.infer<typeof ClarificationResponseMessageSchema>; export type ContextRequestMessage = z.infer<typeof ContextRequestMessageSchema>; export type ContextResponseMessage = z.infer<typeof ContextResponseMessageSchema>; export type PlanMessage = z.infer<typeof PlanMessageSchema>; export type PlanApprovalMessage = z.infer<typeof PlanApprovalMessageSchema>; export type SystemMessage = z.infer<typeof SystemMessageSchema>; export type ToolResultMessage = z.infer<typeof ToolResultMessageSchema>; export type CoffeeMessage = z.infer<typeof CoffeeMessageSchema>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export declare const RICE_DEFAULT_MODEL: AvailableModel; export declare const RiceIssueTypeSchema: z.ZodNullable<z.ZodEnum<["setup", "workflow", "input"]>>; export type RiceIssueType = z.infer<typeof RiceIssueTypeSchema>; export declare const RiceEvaluationResultSchema: z.ZodObject<{ working: z.ZodBoolean; issueType: z.ZodNullable<z.ZodEnum<["setup", "workflow", "input"]>>; summary: z.ZodString; rating: z.ZodNumber; }, "strip", z.ZodTypeAny, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }>; export declare const RiceRequestSchema: z.ZodObject<{ executionLogs: z.ZodArray<z.ZodUnknown, "many">; workflowCode: z.ZodString; executionId: z.ZodNumber; bubbleFlowId: z.ZodNumber; model: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>>; }, "strip", z.ZodTypeAny, { executionLogs: unknown[]; executionId: number; model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; workflowCode: string; bubbleFlowId: number; }, { executionLogs: unknown[]; executionId: number; workflowCode: string; bubbleFlowId: number; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; }>; export declare const RiceResponseSchema: z.ZodObject<{ success: z.ZodBoolean; evaluation: z.ZodOptional<z.ZodObject<{ working: z.ZodBoolean; issueType: z.ZodNullable<z.ZodEnum<["setup", "workflow", "input"]>>; summary: z.ZodString; rating: z.ZodNumber; }, "strip", z.ZodTypeAny, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }>>; error: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { success: boolean; error?: string | undefined; evaluation?: { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; } | undefined; }, { success: boolean; error?: string | undefined; evaluation?: { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; } | undefined; }>; export type RiceEvaluationResult = z.infer<typeof RiceEvaluationResultSchema>; export type RiceRequest = z.input<typeof RiceRequestSchema>; export type RiceResponse = z.infer<typeof RiceResponseSchema>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export interface CronExpression { minute: string; hour: string; dayOfMonth: string; month: string; dayOfWeek: string; original: string; }
123
+ export declare const slackUrlVerificationSchema: z.ZodObject<{ token: z.ZodString; challenge: z.ZodString; type: z.ZodLiteral<"url_verification">; }, "strip", z.ZodTypeAny, { type: "url_verification"; token: string; challenge: string; }, { type: "url_verification"; token: string; challenge: string; }>; export declare const slackUrlVerificationResponseSchema: z.ZodObject<{ challenge: z.ZodString; }, "strip", z.ZodTypeAny, { challenge: string; }, { challenge: string; }>; export type SlackUrlVerificationResponse = z.infer<typeof slackUrlVerificationResponseSchema>; export declare const MilkTeaRequestSchema: z.ZodObject<{ userRequest: z.ZodString; bubbleName: z.ZodString; bubbleSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>; currentCode: z.ZodOptional<z.ZodString>; availableCredentials: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; userName: z.ZodString; insertLocation: z.ZodOptional<z.ZodString>; conversationHistory: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; }, "strip", z.ZodTypeAny, { bubbleName: string; model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; userRequest: string; bubbleSchema: Record<string, unknown>; availableCredentials: string[]; userName: string; conversationHistory: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[]; currentCode?: string | undefined; insertLocation?: string | undefined; }, { bubbleName: string; userRequest: string; bubbleSchema: Record<string, unknown>; userName: string; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; currentCode?: string | undefined; availableCredentials?: string[] | undefined; insertLocation?: string | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; }>; export declare const MilkTeaResponseSchema: z.ZodObject<{ type: z.ZodEnum<["code", "question", "reject"]>; message: z.ZodString; snippet: z.ZodOptional<z.ZodString>; success: z.ZodBoolean; error: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; type: "code" | "question" | "reject"; success: boolean; error?: string | undefined; snippet?: string | undefined; }, { message: string; type: "code" | "question" | "reject"; success: boolean; error?: string | undefined; snippet?: string | undefined; }>; export declare const MilkTeaAgentOutputSchema: z.ZodObject<{ type: z.ZodEnum<["code", "question", "reject"]>; message: z.ZodString; snippet: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; type: "code" | "question" | "reject"; snippet?: string | undefined; }, { message: string; type: "code" | "question" | "reject"; snippet?: string | undefined; }>; export type MilkTeaRequest = z.infer<typeof MilkTeaRequestSchema>; export type MilkTeaResponse = z.infer<typeof MilkTeaResponseSchema>; export type MilkTeaAgentOutput = z.infer<typeof MilkTeaAgentOutputSchema>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export declare const RECOMMENDED_MODELS: Record<string, AvailableModel>; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
124
+ export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare const PEARL_DEFAULT_MODEL: AvailableModel; export declare const PearlRequestSchema: z.ZodObject<{ userRequest: z.ZodString; currentCode: z.ZodOptional<z.ZodString>; userName: z.ZodString; availableVariables: z.ZodArray<z.ZodAny, "many">; conversationHistory: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; additionalContext: z.ZodOptional<z.ZodString>; uploadedFiles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; content: z.ZodString; fileType: z.ZodEnum<["image", "text"]>; }, "strip", z.ZodTypeAny, { content: string; name: string; fileType: "text" | "image"; }, { content: string; name: string; fileType: "text" | "image"; }>, "many">>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; userRequest: string; userName: string; conversationHistory: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[]; availableVariables: any[]; uploadedFiles: { content: string; name: string; fileType: "text" | "image"; }[]; currentCode?: string | undefined; additionalContext?: string | undefined; }, { userRequest: string; userName: string; availableVariables: any[]; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; currentCode?: string | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; additionalContext?: string | undefined; uploadedFiles?: { content: string; name: string; fileType: "text" | "image"; }[] | undefined; }>; export declare const PearlResponseSchema: z.ZodObject<{ type: z.ZodEnum<["code", "question", "answer", "reject"]>; message: z.ZodString; snippet: z.ZodOptional<z.ZodString>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodNumber, z.ZodObject<{ variableName: z.ZodString; bubbleName: z.ZodType<import("./types.js").BubbleName>; className: z.ZodString; parameters: z.ZodArray<z.ZodObject<{ location: z.ZodOptional<z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>>; variableId: z.ZodOptional<z.ZodNumber>; name: z.ZodString; value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>; type: z.ZodNativeEnum<typeof import("./bubble-definition-schema.js").BubbleParameterType>; source: z.ZodOptional<z.ZodEnum<["object-property", "first-arg", "spread"]>>; }, "strip", z.ZodTypeAny, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }>, "many">; hasAwait: z.ZodBoolean; hasActionCall: z.ZodBoolean; dependencies: z.ZodOptional<z.ZodArray<z.ZodType<import("./types.js").BubbleName, z.ZodTypeDef, import("./types.js").BubbleName>, "many">>; dependencyGraph: z.ZodOptional<z.ZodType<import("./bubble-definition-schema.js").DependencyGraphNode, z.ZodTypeDef, import("./bubble-definition-schema.js").DependencyGraphNode>>; variableId: z.ZodNumber; nodeType: z.ZodEnum<["service", "tool", "workflow", "unknown"]>; location: z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>; description: z.ZodOptional<z.ZodString>; invocationCallSiteKey: z.ZodOptional<z.ZodString>; clonedFromVariableId: z.ZodOptional<z.ZodNumber>; isInsideCustomTool: z.ZodOptional<z.ZodBoolean>; containingCustomToolId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }>>>; inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; requiredCredentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">>>; success: z.ZodBoolean; error: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; type: "code" | "question" | "answer" | "reject"; success: boolean; error?: string | undefined; inputSchema?: Record<string, unknown> | undefined; requiredCredentials?: Record<string, CredentialType[]> | undefined; bubbleParameters?: Record<number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }> | undefined; snippet?: string | undefined; }, { message: string; type: "code" | "question" | "answer" | "reject"; success: boolean; error?: string | undefined; inputSchema?: Record<string, unknown> | undefined; requiredCredentials?: Record<string, CredentialType[]> | undefined; bubbleParameters?: Record<number, { location: { startLine: number; startCol: number; endLine: number; endCol: number; }; variableId: number; variableName: string; nodeType: "tool" | "unknown" | "service" | "workflow"; className: string; parameters: { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: import("./bubble-definition-schema.js").BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }[]; hasAwait: boolean; hasActionCall: boolean; bubbleName: import("./types.js").BubbleName; description?: string | undefined; dependencies?: import("./types.js").BubbleName[] | undefined; dependencyGraph?: import("./bubble-definition-schema.js").DependencyGraphNode | undefined; invocationCallSiteKey?: string | undefined; clonedFromVariableId?: number | undefined; isInsideCustomTool?: boolean | undefined; containingCustomToolId?: string | undefined; }> | undefined; snippet?: string | undefined; }>; export type PearlRequest = z.infer<typeof PearlRequestSchema>; export type PearlResponse = z.infer<typeof PearlResponseSchema>; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
125
+ export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare const COFFEE_MAX_ITERATIONS = 30; export declare const COFFEE_MAX_QUESTIONS = 5; export declare const COFFEE_DEFAULT_MODEL: "google/gemini-3-pro-preview"; export declare const ClarificationChoiceSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>; export declare const ClarificationQuestionSchema: z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>; export declare const CoffeeClarificationEventSchema: z.ZodObject<{ questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>; export declare const CoffeeRequestExternalContextEventSchema: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; export declare const CoffeeContextAnswerSchema: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; export declare const CoffeeContextRequestInfoSchema: z.ZodObject<{ purpose: z.ZodString; flowDescription: z.ZodString; }, "strip", z.ZodTypeAny, { purpose: string; flowDescription: string; }, { purpose: string; flowDescription: string; }>; export declare const CoffeeContextEventSchema: z.ZodObject<{ status: z.ZodEnum<["gathering", "complete"]>; miniFlowDescription: z.ZodOptional<z.ZodString>; result: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { status: "gathering" | "complete"; result?: string | undefined; miniFlowDescription?: string | undefined; }, { status: "gathering" | "complete"; result?: string | undefined; miniFlowDescription?: string | undefined; }>; export declare const PlanStepSchema: z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>; export declare const CoffeePlanEventSchema: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; export declare const UserMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>; export declare const AssistantMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>; export declare const ClarificationRequestMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>; export declare const ClarificationResponseMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>; export declare const ContextRequestMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>; export declare const ContextResponseMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>; export declare const PlanMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>; export declare const PlanApprovalMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>; export declare const SystemMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>; export declare const ToolResultMessageSchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>; export declare const CoffeeMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>]>; export declare const CoffeeRequestSchema: z.ZodObject<{ prompt: z.ZodString; flowId: z.ZodOptional<z.ZodNumber>; messages: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"user">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "user"; timestamp: string; id: string; }, { content: string; type: "user"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"assistant">; content: z.ZodString; code: z.ZodOptional<z.ZodString>; resultType: z.ZodOptional<z.ZodEnum<["code", "question", "answer", "reject"]>>; bubbleParameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }, { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_request">; questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"clarification_response">; answers: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; originalQuestions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; }, { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_request">; request: z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>; }, "strip", z.ZodTypeAny, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }, { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"context_response">; answer: z.ZodObject<{ flowId: z.ZodString; status: z.ZodEnum<["success", "rejected", "error"]>; result: z.ZodOptional<z.ZodUnknown>; error: z.ZodOptional<z.ZodString>; originalRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; }, "strip", z.ZodTypeAny, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; credentialTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }, { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan">; plan: z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }, { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"plan_approval">; approved: z.ZodBoolean; comment: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }, { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"system">; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; type: "system"; timestamp: string; id: string; }, { content: string; type: "system"; timestamp: string; id: string; }>, z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; } & { type: z.ZodLiteral<"tool_result">; toolName: z.ZodString; toolCallId: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; duration: z.ZodNumber; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }, { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; }>]>, "many">>; }, "strip", z.ZodTypeAny, { prompt: string; flowId?: number | undefined; messages?: ({ content: string; type: "user"; timestamp: string; id: string; } | { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; } | { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; } | { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; } | { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; } | { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; } | { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; } | { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; } | { content: string; type: "system"; timestamp: string; id: string; } | { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; })[] | undefined; }, { prompt: string; flowId?: number | undefined; messages?: ({ content: string; type: "user"; timestamp: string; id: string; } | { content: string; type: "assistant"; timestamp: string; id: string; code?: string | undefined; bubbleParameters?: Record<string, unknown> | undefined; resultType?: "code" | "question" | "answer" | "reject" | undefined; } | { type: "clarification_request"; timestamp: string; id: string; questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; } | { type: "clarification_response"; timestamp: string; id: string; answers: Record<string, string[]>; originalQuestions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; } | { type: "context_request"; timestamp: string; id: string; request: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }; } | { type: "context_response"; timestamp: string; id: string; answer: { status: "error" | "success" | "rejected"; flowId: string; error?: string | undefined; result?: unknown; originalRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }; credentialTypes?: string[] | undefined; } | { type: "plan"; timestamp: string; id: string; plan: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }; } | { type: "plan_approval"; timestamp: string; id: string; approved: boolean; comment?: string | undefined; } | { content: string; type: "system"; timestamp: string; id: string; } | { toolCallId: string; type: "tool_result"; timestamp: string; duration: number; id: string; success: boolean; toolName: string; input?: unknown; output?: unknown; })[] | undefined; }>; export declare const CoffeeResponseSchema: z.ZodObject<{ type: z.ZodEnum<["clarification", "plan", "context_request", "error"]>; clarification: z.ZodOptional<z.ZodObject<{ questions: z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; }, { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; }>>; plan: z.ZodOptional<z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>>; contextRequest: z.ZodOptional<z.ZodObject<{ flowId: z.ZodString; flowCode: z.ZodString; credentialRequirements: z.ZodObject<{ required: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; optional: z.ZodArray<z.ZodNativeEnum<typeof CredentialType>, "many">; }, "strip", z.ZodTypeAny, { required: CredentialType[]; optional: CredentialType[]; }, { required: CredentialType[]; optional: CredentialType[]; }>; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }, { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; }>>; error: z.ZodOptional<z.ZodString>; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { type: "error" | "context_request" | "plan" | "clarification"; success: boolean; error?: string | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; clarification?: { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[]; } | undefined; contextRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }, { type: "error" | "context_request" | "plan" | "clarification"; success: boolean; error?: string | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; clarification?: { questions: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[]; } | undefined; contextRequest?: { description: string; flowId: string; flowCode: string; credentialRequirements: { required: CredentialType[]; optional: CredentialType[]; }; } | undefined; }>; export declare const CoffeeAgentOutputSchema: z.ZodObject<{ action: z.ZodEnum<["askClarification", "generatePlan", "requestContext"]>; questions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; question: z.ZodString; choices: z.ZodArray<z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; label: string; description?: string | undefined; }, { id: string; label: string; description?: string | undefined; }>, "many">; context: z.ZodOptional<z.ZodString>; allowMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }, { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }>, "many">>; plan: z.ZodOptional<z.ZodObject<{ summary: z.ZodString; steps: z.ZodArray<z.ZodObject<{ title: z.ZodString; description: z.ZodString; bubblesUsed: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { description: string; title: string; bubblesUsed?: string[] | undefined; }, { description: string; title: string; bubblesUsed?: string[] | undefined; }>, "many">; estimatedBubbles: z.ZodArray<z.ZodString, "many">; estimatedCapabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }, { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; }>>; contextRequest: z.ZodOptional<z.ZodObject<{ purpose: z.ZodString; flowDescription: z.ZodString; }, "strip", z.ZodTypeAny, { purpose: string; flowDescription: string; }, { purpose: string; flowDescription: string; }>>; }, "strip", z.ZodTypeAny, { action: "askClarification" | "generatePlan" | "requestContext"; questions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; allowMultiple: boolean; context?: string | undefined; }[] | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; contextRequest?: { purpose: string; flowDescription: string; } | undefined; }, { action: "askClarification" | "generatePlan" | "requestContext"; questions?: { id: string; question: string; choices: { id: string; label: string; description?: string | undefined; }[]; context?: string | undefined; allowMultiple?: boolean | undefined; }[] | undefined; plan?: { summary: string; steps: { description: string; title: string; bubblesUsed?: string[] | undefined; }[]; estimatedBubbles: string[]; estimatedCapabilities?: string[] | undefined; } | undefined; contextRequest?: { purpose: string; flowDescription: string; } | undefined; }>; export type ClarificationChoice = z.infer<typeof ClarificationChoiceSchema>; export type ClarificationQuestion = z.infer<typeof ClarificationQuestionSchema>; export type CoffeeClarificationEvent = z.infer<typeof CoffeeClarificationEventSchema>; export type CoffeeRequestExternalContextEvent = z.infer<typeof CoffeeRequestExternalContextEventSchema>; export type CoffeeContextAnswer = z.infer<typeof CoffeeContextAnswerSchema>; export type CoffeeContextEvent = z.infer<typeof CoffeeContextEventSchema>; export type CoffeeContextRequestInfo = z.infer<typeof CoffeeContextRequestInfoSchema>; export type PlanStep = z.infer<typeof PlanStepSchema>; export type CoffeePlanEvent = z.infer<typeof CoffeePlanEventSchema>; export type CoffeeRequest = z.infer<typeof CoffeeRequestSchema>; export type CoffeeResponse = z.infer<typeof CoffeeResponseSchema>; export type CoffeeAgentOutput = z.infer<typeof CoffeeAgentOutputSchema>; export type UserMessage = z.infer<typeof UserMessageSchema>; export type AssistantMessage = z.infer<typeof AssistantMessageSchema>; export type ClarificationRequestMessage = z.infer<typeof ClarificationRequestMessageSchema>; export type ClarificationResponseMessage = z.infer<typeof ClarificationResponseMessageSchema>; export type ContextRequestMessage = z.infer<typeof ContextRequestMessageSchema>; export type ContextResponseMessage = z.infer<typeof ContextResponseMessageSchema>; export type PlanMessage = z.infer<typeof PlanMessageSchema>; export type PlanApprovalMessage = z.infer<typeof PlanApprovalMessageSchema>; export type SystemMessage = z.infer<typeof SystemMessageSchema>; export type ToolResultMessage = z.infer<typeof ToolResultMessageSchema>; export type CoffeeMessage = z.infer<typeof CoffeeMessageSchema>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export declare const RECOMMENDED_MODELS: Record<string, AvailableModel>; export declare const RICE_DEFAULT_MODEL: AvailableModel; export declare const RiceIssueTypeSchema: z.ZodNullable<z.ZodEnum<["setup", "workflow", "input"]>>; export type RiceIssueType = z.infer<typeof RiceIssueTypeSchema>; export declare const RiceEvaluationResultSchema: z.ZodObject<{ working: z.ZodBoolean; issueType: z.ZodNullable<z.ZodEnum<["setup", "workflow", "input"]>>; summary: z.ZodString; rating: z.ZodNumber; }, "strip", z.ZodTypeAny, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }>; export declare const RiceRequestSchema: z.ZodObject<{ executionLogs: z.ZodArray<z.ZodUnknown, "many">; workflowCode: z.ZodString; executionId: z.ZodNumber; bubbleFlowId: z.ZodNumber; model: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>>; }, "strip", z.ZodTypeAny, { executionLogs: unknown[]; executionId: number; model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; workflowCode: string; bubbleFlowId: number; }, { executionLogs: unknown[]; executionId: number; workflowCode: string; bubbleFlowId: number; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; }>; export declare const RiceResponseSchema: z.ZodObject<{ success: z.ZodBoolean; evaluation: z.ZodOptional<z.ZodObject<{ working: z.ZodBoolean; issueType: z.ZodNullable<z.ZodEnum<["setup", "workflow", "input"]>>; summary: z.ZodString; rating: z.ZodNumber; }, "strip", z.ZodTypeAny, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }, { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; }>>; error: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { success: boolean; error?: string | undefined; evaluation?: { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; } | undefined; }, { success: boolean; error?: string | undefined; evaluation?: { summary: string; working: boolean; issueType: "workflow" | "input" | "setup" | null; rating: number; } | undefined; }>; export type RiceEvaluationResult = z.infer<typeof RiceEvaluationResultSchema>; export type RiceRequest = z.input<typeof RiceRequestSchema>; export type RiceResponse = z.infer<typeof RiceResponseSchema>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export declare const RECOMMENDED_MODELS: Record<string, AvailableModel>; export interface CronExpression { minute: string; hour: string; dayOfMonth: string; month: string; dayOfWeek: string; original: string; }
126
126
  export interface CronScheduleInfo { expression: CronExpression; description: string; nextRun?: Date; isValid: boolean; error?: string; }
127
127
  export declare function parseCronExpression(cronString: string): CronExpression; export declare function validateCronExpression(cronString: string): { valid: boolean; error?: string; }; export declare function describeCronExpression(cronString: string): string; export declare function getCronScheduleInfo(cronString: string): CronScheduleInfo; export interface BubbleTriggerEventRegistry { 'slack/bot_mentioned': SlackMentionEvent; 'slack/message_received': SlackMessageReceivedEvent; 'slack/reaction_added': SlackReactionAddedEvent; 'slack/approval_resumed': SlackApprovalResumedEvent; 'airtable/record_created': AirtableRecordCreatedEvent; 'airtable/record_updated': AirtableRecordUpdatedEvent; 'airtable/record_deleted': AirtableRecordDeletedEvent; 'schedule/cron': CronEvent; 'webhook/http': WebhookEvent; }
128
128
  export declare const BUBBLE_TRIGGER_EVENTS: { readonly 'slack/bot_mentioned': true; readonly 'slack/message_received': true; readonly 'slack/reaction_added': true; readonly 'slack/approval_resumed': true; readonly 'airtable/record_created': true; readonly 'airtable/record_updated': true; readonly 'airtable/record_deleted': true; readonly 'schedule/cron': true; readonly 'webhook/http': true; }; export declare function isValidBubbleTriggerEvent(eventType: string): eventType is keyof BubbleTriggerEventRegistry; export interface BubbleTriggerEvent { type: keyof BubbleTriggerEventRegistry; timestamp: string; executionId: string; path: string; [key: string]: unknown; }
@@ -150,7 +150,7 @@ export declare const TRIGGER_EVENT_CONFIGS: Record<keyof BubbleTriggerEventRegis
150
150
  export interface AirtableTable { id: string; name: string; description?: string; }
151
151
  export interface AirtableTableFull extends AirtableTable { primaryFieldId: string; fields: Array<{ id: string; name: string; type: string; description?: string; }>; }
152
152
  export declare const AIRTABLE_TRIGGER_CONFIG_KEYS: { readonly BASE_ID: "airtable_base_id"; readonly TABLE_ID: "airtable_table_id"; readonly WEBHOOK_ID: "airtable_webhook_id"; readonly MAC_SECRET: "airtable_mac_secret"; readonly WEBHOOK_EXPIRATION: "airtable_webhook_expiration"; readonly DELAY_SECONDS: "airtable_trigger_delay_seconds"; }; export interface AirtableTriggerConfig { airtable_base_id?: string; airtable_table_id?: string; airtable_webhook_id?: string; airtable_mac_secret?: string; airtable_webhook_expiration?: string; airtable_trigger_delay_seconds?: AirtableDelaySeconds; }
153
- export declare function getAirtableTriggerConfig(defaultInputs: Record<string, unknown>): AirtableTriggerConfig; export type AirtableEventType = Extract<keyof BubbleTriggerEventRegistry, `airtable/${string}`>; export declare const AvailableModels: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; export type AvailableModel = z.infer<typeof AvailableModels>; export declare const RECOMMENDED_MODELS: Record<string, AvailableModel>; export type StorableValue = { truncated: boolean; preview: string | unknown; sizeBytes: number; }; export declare function prepareForStorage(value: unknown, options?: { maxBytes?: number; previewBytes?: number; }): StorableValue; export declare function cleanUpObjectForDisplayAndStorage(obj: unknown, maxBytes?: number): unknown; export declare function sanitizeParams(params: Record<string, unknown>): Record<string, unknown>; export declare function enhanceErrorMessage(errorMessage: string): string; export declare function hashToVariableId(input: string): number; export declare function buildCallSiteKey(methodName: string, invocationIndex: number): string; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
153
+ export declare function getAirtableTriggerConfig(defaultInputs: Record<string, unknown>): AirtableTriggerConfig; export type AirtableEventType = Extract<keyof BubbleTriggerEventRegistry, `airtable/${string}`>; export type StorableValue = { truncated: boolean; preview: string | unknown; sizeBytes: number; }; export declare function prepareForStorage(value: unknown, options?: { maxBytes?: number; previewBytes?: number; }): StorableValue; export declare function cleanUpObjectForDisplayAndStorage(obj: unknown, maxBytes?: number): unknown; export declare function sanitizeParams(params: Record<string, unknown>): Record<string, unknown>; export declare function enhanceErrorMessage(errorMessage: string): string; export declare function hashToVariableId(input: string): number; export declare function buildCallSiteKey(methodName: string, invocationIndex: number): string; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
154
154
  export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare const TOOL_CALL_TO_DISCARD: BubbleName[]; export declare const ConversationMessageSchema: z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; export declare enum CredentialType { CREDENTIAL_WILDCARD = "*", OPENAI_CRED = "OPENAI_CRED", GOOGLE_GEMINI_CRED = "GOOGLE_GEMINI_CRED", ANTHROPIC_CRED = "ANTHROPIC_CRED", OPENROUTER_CRED = "OPENROUTER_CRED", FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY", DATABASE_CRED = "DATABASE_CRED", SLACK_CRED = "SLACK_CRED", SLACK_API = "SLACK_API", TELEGRAM_BOT_TOKEN = "TELEGRAM_BOT_TOKEN", RESEND_CRED = "RESEND_CRED", CLOUDFLARE_R2_ACCESS_KEY = "CLOUDFLARE_R2_ACCESS_KEY", CLOUDFLARE_R2_SECRET_KEY = "CLOUDFLARE_R2_SECRET_KEY", CLOUDFLARE_R2_ACCOUNT_ID = "CLOUDFLARE_R2_ACCOUNT_ID", APIFY_CRED = "APIFY_CRED", ELEVENLABS_API_KEY = "ELEVENLABS_API_KEY", GOOGLE_DRIVE_CRED = "GOOGLE_DRIVE_CRED", GMAIL_CRED = "GMAIL_CRED", GOOGLE_SHEETS_CRED = "GOOGLE_SHEETS_CRED", GOOGLE_CALENDAR_CRED = "GOOGLE_CALENDAR_CRED", FUB_CRED = "FUB_CRED", NOTION_OAUTH_TOKEN = "NOTION_OAUTH_TOKEN", NOTION_API = "NOTION_API", AIRTABLE_OAUTH = "AIRTABLE_OAUTH", GITHUB_TOKEN = "GITHUB_TOKEN", AGI_API_KEY = "AGI_API_KEY", AIRTABLE_CRED = "AIRTABLE_CRED", INSFORGE_BASE_URL = "INSFORGE_BASE_URL", INSFORGE_API_KEY = "INSFORGE_API_KEY", CUSTOM_AUTH_KEY = "CUSTOM_AUTH_KEY", AMAZON_CRED = "AMAZON_CRED", LINKEDIN_CRED = "LINKEDIN_CRED", BROWSERBASE_CRED = "BROWSERBASE_CRED", CRUSTDATA_API_KEY = "CRUSTDATA_API_KEY", JIRA_CRED = "JIRA_CRED", ASHBY_CRED = "ASHBY_CRED", FULLENRICH_API_KEY = "FULLENRICH_API_KEY", STRIPE_CRED = "STRIPE_CRED", CONFLUENCE_CRED = "CONFLUENCE_CRED", POSTHOG_API_KEY = "POSTHOG_API_KEY", SENDSAFELY_CRED = "SENDSAFELY_CRED", LINEAR_CRED = "LINEAR_CRED", ATTIO_CRED = "ATTIO_CRED", HUBSPOT_CRED = "HUBSPOT_CRED" }
155
155
  export type BubbleName = 'hello-world' | 'ai-agent' | 'postgresql' | 'slack' | 'resend' | 'http' | 'slack-formatter-agent' | 'database-analyzer' | 'slack-notifier' | 'get-bubble-details-tool' | 'get-trigger-detail-tool' | 'list-bubbles-tool' | 'list-capabilities-tool' | 'sql-query-tool' | 'chart-js-tool' | 'web-search-tool' | 'web-scrape-tool' | 'web-crawl-tool' | 'web-extract-tool' | 'research-agent-tool' | 'reddit-scrape-tool' | 'slack-data-assistant' | 'bubbleflow-code-generator' | 'bubbleflow-generator' | 'pdf-form-operations' | 'pdf-ocr-workflow' | 'generate-document-workflow' | 'parse-document-workflow' | 'bubbleflow-validation-tool' | 'code-edit-tool' | 'storage' | 'google-drive' | 'gmail' | 'google-sheets' | 'google-calendar' | 'apify' | 'instagram-tool' | 'linkedin-tool' | 'tiktok-tool' | 'twitter-tool' | 'google-maps-tool' | 'youtube-tool' | 'github' | 'eleven-labs' | 'followupboss' | 'agi-inc' | 'telegram' | 'airtable' | 'notion' | 'firecrawl' | 'insforge-db' | 'browserbase' | 'amazon-shopping-tool' | 'crustdata' | 'company-enrichment-tool' | 'people-search-tool' | 'jira' | 'ashby' | 'fullenrich' | 'linkedin-connection-tool' | 'linkedin-sent-invitations-tool' | 'linkedin-received-invitations-tool' | 'linkedin-accept-invitations-tool' | 'stripe' | 'confluence' | 'sendsafely' | 'yc-scraper-tool' | 'posthog' | 'linear' | 'attio' | 'hubspot'; export declare enum BubbleParameterType { STRING = "string", NUMBER = "number", BOOLEAN = "boolean", OBJECT = "object", ARRAY = "array", ENV = "env", VARIABLE = "variable", EXPRESSION = "expression", UNKNOWN = "unknown" }
156
156
  export declare const CREDENTIAL_CONFIGURATION_MAP: Record<CredentialType, Record<string, BubbleParameterType>>; export declare const BUBBLE_NAMES_WITH_CONTEXT_INJECTION: string[]; export declare const BubbleParameterTypeSchema: z.ZodNativeEnum<typeof BubbleParameterType>; export declare const BubbleParameterSchema: z.ZodObject<{ location: z.ZodOptional<z.ZodObject<{ startLine: z.ZodNumber; startCol: z.ZodNumber; endLine: z.ZodNumber; endCol: z.ZodNumber; }, "strip", z.ZodTypeAny, { startLine: number; startCol: number; endLine: number; endCol: number; }, { startLine: number; startCol: number; endLine: number; endCol: number; }>>; variableId: z.ZodOptional<z.ZodNumber>; name: z.ZodString; value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>; type: z.ZodNativeEnum<typeof BubbleParameterType>; source: z.ZodOptional<z.ZodEnum<["object-property", "first-arg", "spread"]>>; }, "strip", z.ZodTypeAny, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }, { name: string; value: string | number | boolean | unknown[] | Record<string, unknown>; type: BubbleParameterType; location?: { startLine: number; startCol: number; endLine: number; endCol: number; } | undefined; variableId?: number | undefined; source?: "object-property" | "first-arg" | "spread" | undefined; }>; export type BubbleParameter = z.infer<typeof BubbleParameterSchema>; export interface ParsedBubble { variableName: string; bubbleName: BubbleName; className: string; parameters: BubbleParameter[]; hasAwait: boolean; hasActionCall: boolean; dependencies?: BubbleName[]; dependencyGraph?: DependencyGraphNode; }
@@ -205,8 +205,8 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
205
205
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
206
206
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
207
207
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
208
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; export type AvailableTool = z.infer<typeof AvailableTools>; export type ToolHookContext = { toolName: AvailableTool; toolInput: unknown; toolOutput?: BubbleResult<unknown>; messages: BaseMessage[]; bubbleContext?: BubbleContext; }; export type ToolHookAfter = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; shouldStop?: boolean; }>; export type ToolHookBefore = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; toolInput: Record<string, any>; shouldSkip?: boolean; skipMessage?: string; }>; export type AfterLLMCallContext = { messages: BaseMessage[]; lastAIMessage: AIMessage | AIMessageChunk; hasToolCalls: boolean; }; export type AfterLLMCallHook = (context: AfterLLMCallContext) => Promise<{ messages: BaseMessage[]; continueToAgent?: boolean; }>; export type StreamingCallback = (event: StreamingEvent) => Promise<void> | void; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; declare const AIAgentParamsSchema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; declare const AIAgentResultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; export
209
- type AIAgentParams = z.input<typeof AIAgentParamsSchema>;;; & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentParamsParsed = z.output<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentResult = z.output<typeof AIAgentResultSchema>; export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AIAgentResult> { static readonly type: "service"; static readonly service = "ai-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; static readonly shortDescription = "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode"; static readonly longDescription = "\n An AI agent powered by LangGraph that can use any tool bubble to answer questions.\n Use cases:\n - Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)\n - Multi-step reasoning with tool assistance\n - Tool-augmented conversations with any registered tool\n - JSON mode for structured output (strips markdown formatting)\n "; static readonly alias = "agent"; private factory; private beforeToolCallHook; private afterToolCallHook; private capabilityBeforeHooks; private capabilityAfterHooks; private afterLLMCallHook; private streamingCallback; private shouldStopAfterTools; private shouldContinueToAgent; private rescueAttempts; private static readonly MAX_RESCUE_ATTEMPTS; constructor(params?: AIAgentParams, context?: BubbleContext, instanceId?: string); testCredential(): Promise<boolean>; private buildModelConfig; private executeWithModel; private beforeAction; protected performAction(context?: BubbleContext): Promise<AIAgentResult>; private runMemoryReflectionIfNeeded; protected getCredentialType(): CredentialType; private getCredentialTypeForModel; protected chooseCredential(): string | undefined; private isDeepResearchModel; private executeDeepResearchViaOpenRouter; private initializeModel; private initializeTools; private resolveCapabilityCredentials; private resolveCapabilityToolNode; private jsonSchemaToZod; private executeToolsWithHooks; private createAgentGraph; private executeAgent; }
208
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; export type AvailableTool = z.infer<typeof AvailableTools>; export type ToolHookContext = { toolName: AvailableTool; toolInput: unknown; toolOutput?: BubbleResult<unknown>; messages: BaseMessage[]; bubbleContext?: BubbleContext; }; export type ToolHookAfter = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; shouldStop?: boolean; }>; export type ToolHookBefore = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; toolInput: Record<string, any>; shouldSkip?: boolean; skipMessage?: string; }>; export type AfterLLMCallContext = { messages: BaseMessage[]; lastAIMessage: AIMessage | AIMessageChunk; hasToolCalls: boolean; }; export type AfterLLMCallHook = (context: AfterLLMCallContext) => Promise<{ messages: BaseMessage[]; continueToAgent?: boolean; }>; export type StreamingCallback = (event: StreamingEvent) => Promise<void> | void; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; declare const AIAgentParamsSchema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; declare const AIAgentResultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; export
209
+ type AIAgentParams = z.input<typeof AIAgentParamsSchema>;;; & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentParamsParsed = z.output<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentResult = z.output<typeof AIAgentResultSchema>; export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AIAgentResult> { static readonly type: "service"; static readonly service = "ai-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; static readonly shortDescription = "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode"; static readonly longDescription = "\n An AI agent powered by LangGraph that can use any tool bubble to answer questions.\n Use cases:\n - Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)\n - Multi-step reasoning with tool assistance\n - Tool-augmented conversations with any registered tool\n - JSON mode for structured output (strips markdown formatting)\n "; static readonly alias = "agent"; private factory; private beforeToolCallHook; private afterToolCallHook; private capabilityBeforeHooks; private capabilityAfterHooks; private afterLLMCallHook; private streamingCallback; private shouldStopAfterTools; private shouldContinueToAgent; private rescueAttempts; private static readonly MAX_RESCUE_ATTEMPTS; constructor(params?: AIAgentParams, context?: BubbleContext, instanceId?: string); testCredential(): Promise<boolean>; private buildModelConfig; private executeWithModel; private beforeAction; protected performAction(context?: BubbleContext): Promise<AIAgentResult>; private runMemoryReflectionIfNeeded; protected getCredentialType(): CredentialType; private getCredentialTypeForModel; protected chooseCredential(): string | undefined; private isDeepResearchModel; private executeDeepResearchViaOpenRouter; private initializeModel; private initializeTools; private resolveCapabilityCredentials; private resolveCapabilityToolNode; private jsonSchemaToZod; private executeToolsWithHooks; private createAgentGraph; private executeAgent; }
210
210
  export {}; export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
211
211
  export declare class BubbleValidationError extends BubbleError { readonly validationErrors?: string[]; constructor(message: string, options?: { variableId?: number; bubbleName?: string; validationErrors?: string[]; cause?: Error; }); }
212
212
  export declare class BubbleExecutionError extends BubbleError { readonly executionPhase?: 'instantiation' | 'execution' | 'validation'; constructor(message: string, options?: { variableId?: number; bubbleName?: string; executionPhase?: 'instantiation' | 'execution' | 'validation'; cause?: Error; }); }
@@ -244,7 +244,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
244
244
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
245
245
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
246
246
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
247
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; export type AvailableTool = z.infer<typeof AvailableTools>; export type ToolHookContext = { toolName: AvailableTool; toolInput: unknown; toolOutput?: BubbleResult<unknown>; messages: BaseMessage[]; bubbleContext?: BubbleContext; }; export type ToolHookAfter = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; shouldStop?: boolean; }>; export type ToolHookBefore = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; toolInput: Record<string, any>; shouldSkip?: boolean; skipMessage?: string; }>; export type AfterLLMCallContext = { messages: BaseMessage[]; lastAIMessage: AIMessage | AIMessageChunk; hasToolCalls: boolean; }; export type AfterLLMCallHook = (context: AfterLLMCallContext) => Promise<{ messages: BaseMessage[]; continueToAgent?: boolean; }>; export type StreamingCallback = (event: StreamingEvent) => Promise<void> | void; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; declare const AIAgentParamsSchema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; declare const AIAgentResultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; export type AIAgentParams = z.input<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentParamsParsed = z.output<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentResult = z.output<typeof AIAgentResultSchema>; export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AIAgentResult> { static readonly type: "service"; static readonly service = "ai-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; static readonly shortDescription = "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode"; static readonly longDescription = "\n An AI agent powered by LangGraph that can use any tool bubble to answer questions.\n Use cases:\n - Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)\n - Multi-step reasoning with tool assistance\n - Tool-augmented conversations with any registered tool\n - JSON mode for structured output (strips markdown formatting)\n "; static readonly alias = "agent"; private factory; private beforeToolCallHook; private afterToolCallHook; private capabilityBeforeHooks; private capabilityAfterHooks; private afterLLMCallHook; private streamingCallback; private shouldStopAfterTools; private shouldContinueToAgent; private rescueAttempts; private static readonly MAX_RESCUE_ATTEMPTS; constructor(params?: AIAgentParams, context?: BubbleContext, instanceId?: string); testCredential(): Promise<boolean>; private buildModelConfig; private executeWithModel; private beforeAction; protected performAction(context?: BubbleContext): Promise<AIAgentResult>; private runMemoryReflectionIfNeeded; protected getCredentialType(): CredentialType; private getCredentialTypeForModel; protected chooseCredential(): string | undefined; private isDeepResearchModel; private executeDeepResearchViaOpenRouter; private initializeModel; private initializeTools; private resolveCapabilityCredentials; private resolveCapabilityToolNode; private jsonSchemaToZod; private executeToolsWithHooks; private createAgentGraph; private executeAgent; }
247
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; export type AvailableTool = z.infer<typeof AvailableTools>; export type ToolHookContext = { toolName: AvailableTool; toolInput: unknown; toolOutput?: BubbleResult<unknown>; messages: BaseMessage[]; bubbleContext?: BubbleContext; }; export type ToolHookAfter = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; shouldStop?: boolean; }>; export type ToolHookBefore = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; toolInput: Record<string, any>; shouldSkip?: boolean; skipMessage?: string; }>; export type AfterLLMCallContext = { messages: BaseMessage[]; lastAIMessage: AIMessage | AIMessageChunk; hasToolCalls: boolean; }; export type AfterLLMCallHook = (context: AfterLLMCallContext) => Promise<{ messages: BaseMessage[]; continueToAgent?: boolean; }>; export type StreamingCallback = (event: StreamingEvent) => Promise<void> | void; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; declare const AIAgentParamsSchema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; declare const AIAgentResultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; export type AIAgentParams = z.input<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentParamsParsed = z.output<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentResult = z.output<typeof AIAgentResultSchema>; export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AIAgentResult> { static readonly type: "service"; static readonly service = "ai-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; static readonly shortDescription = "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode"; static readonly longDescription = "\n An AI agent powered by LangGraph that can use any tool bubble to answer questions.\n Use cases:\n - Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)\n - Multi-step reasoning with tool assistance\n - Tool-augmented conversations with any registered tool\n - JSON mode for structured output (strips markdown formatting)\n "; static readonly alias = "agent"; private factory; private beforeToolCallHook; private afterToolCallHook; private capabilityBeforeHooks; private capabilityAfterHooks; private afterLLMCallHook; private streamingCallback; private shouldStopAfterTools; private shouldContinueToAgent; private rescueAttempts; private static readonly MAX_RESCUE_ATTEMPTS; constructor(params?: AIAgentParams, context?: BubbleContext, instanceId?: string); testCredential(): Promise<boolean>; private buildModelConfig; private executeWithModel; private beforeAction; protected performAction(context?: BubbleContext): Promise<AIAgentResult>; private runMemoryReflectionIfNeeded; protected getCredentialType(): CredentialType; private getCredentialTypeForModel; protected chooseCredential(): string | undefined; private isDeepResearchModel; private executeDeepResearchViaOpenRouter; private initializeModel; private initializeTools; private resolveCapabilityCredentials; private resolveCapabilityToolNode; private jsonSchemaToZod; private executeToolsWithHooks; private createAgentGraph; private executeAgent; }
248
248
  export {}; export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
249
249
  export declare class BubbleValidationError extends BubbleError { readonly validationErrors?: string[]; constructor(message: string, options?: { variableId?: number; bubbleName?: string; validationErrors?: string[]; cause?: Error; }); }
250
250
  export declare class BubbleExecutionError extends BubbleError { readonly executionPhase?: 'instantiation' | 'execution' | 'validation'; constructor(message: string, options?: { variableId?: number; bubbleName?: string; executionPhase?: 'instantiation' | 'execution' | 'validation'; cause?: Error; }); }
@@ -338,7 +338,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
338
338
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
339
339
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
340
340
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
341
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; export type AvailableTool = z.infer<typeof AvailableTools>; export type ToolHookContext = { toolName: AvailableTool; toolInput: unknown; toolOutput?: BubbleResult<unknown>; messages: BaseMessage[]; bubbleContext?: BubbleContext; }; export type ToolHookAfter = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; shouldStop?: boolean; }>; export type ToolHookBefore = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; toolInput: Record<string, any>; shouldSkip?: boolean; skipMessage?: string; }>; export type AfterLLMCallContext = { messages: BaseMessage[]; lastAIMessage: AIMessage | AIMessageChunk; hasToolCalls: boolean; }; export type AfterLLMCallHook = (context: AfterLLMCallContext) => Promise<{ messages: BaseMessage[]; continueToAgent?: boolean; }>; export type StreamingCallback = (event: StreamingEvent) => Promise<void> | void; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; declare const AIAgentParamsSchema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; declare const AIAgentResultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; export type AIAgentParams = z.input<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentParamsParsed = z.output<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentResult = z.output<typeof AIAgentResultSchema>; export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AIAgentResult> { static readonly type: "service"; static readonly service = "ai-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; static readonly shortDescription = "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode"; static readonly longDescription = "\n An AI agent powered by LangGraph that can use any tool bubble to answer questions.\n Use cases:\n - Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)\n - Multi-step reasoning with tool assistance\n - Tool-augmented conversations with any registered tool\n - JSON mode for structured output (strips markdown formatting)\n "; static readonly alias = "agent"; private factory; private beforeToolCallHook; private afterToolCallHook; private capabilityBeforeHooks; private capabilityAfterHooks; private afterLLMCallHook; private streamingCallback; private shouldStopAfterTools; private shouldContinueToAgent; private rescueAttempts; private static readonly MAX_RESCUE_ATTEMPTS; constructor(params?: AIAgentParams, context?: BubbleContext, instanceId?: string); testCredential(): Promise<boolean>; private buildModelConfig; private executeWithModel; private beforeAction; protected performAction(context?: BubbleContext): Promise<AIAgentResult>; private runMemoryReflectionIfNeeded; protected getCredentialType(): CredentialType; private getCredentialTypeForModel; protected chooseCredential(): string | undefined; private isDeepResearchModel; private executeDeepResearchViaOpenRouter; private initializeModel; private initializeTools; private resolveCapabilityCredentials; private resolveCapabilityToolNode; private jsonSchemaToZod; private executeToolsWithHooks; private createAgentGraph; private executeAgent; }
341
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; export type AvailableTool = z.infer<typeof AvailableTools>; export type ToolHookContext = { toolName: AvailableTool; toolInput: unknown; toolOutput?: BubbleResult<unknown>; messages: BaseMessage[]; bubbleContext?: BubbleContext; }; export type ToolHookAfter = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; shouldStop?: boolean; }>; export type ToolHookBefore = (context: ToolHookContext) => Promise<{ messages: BaseMessage[]; toolInput: Record<string, any>; shouldSkip?: boolean; skipMessage?: string; }>; export type AfterLLMCallContext = { messages: BaseMessage[]; lastAIMessage: AIMessage | AIMessageChunk; hasToolCalls: boolean; }; export type AfterLLMCallHook = (context: AfterLLMCallContext) => Promise<{ messages: BaseMessage[]; continueToAgent?: boolean; }>; export type StreamingCallback = (event: StreamingEvent) => Promise<void> | void; export type ConversationMessage = z.infer<typeof ConversationMessageSchema>; declare const AIAgentParamsSchema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; declare const AIAgentResultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; export type AIAgentParams = z.input<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentParamsParsed = z.output<typeof AIAgentParamsSchema> & { beforeToolCall?: ToolHookBefore; afterToolCall?: ToolHookAfter; afterLLMCall?: AfterLLMCallHook; streamingCallback?: StreamingCallback; }; export type AIAgentResult = z.output<typeof AIAgentResultSchema>; export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AIAgentResult> { static readonly type: "service"; static readonly service = "ai-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; images: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodDefault<z.ZodLiteral<"base64">>; data: z.ZodString; mimeType: z.ZodDefault<z.ZodString>; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; description?: string | undefined; }, { data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"url">; url: z.ZodString; description: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "url"; url: string; description?: string | undefined; }, { type: "url"; url: string; description?: string | undefined; }>]>, "many">>; conversationHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{ role: z.ZodEnum<["user", "assistant", "tool"]>; content: z.ZodString; toolCallId: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }, { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }>, "many">>; systemPrompt: z.ZodDefault<z.ZodString>; name: z.ZodOptional<z.ZodDefault<z.ZodString>>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodDefault<z.ZodNumber>; provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; jsonMode: z.ZodDefault<z.ZodBoolean>; backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{ model: z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>; temperature: z.ZodOptional<z.ZodNumber>; maxTokens: z.ZodOptional<z.ZodNumber>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; maxRetries: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "list-capabilities-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "people-search-tool", "sql-query-tool"]>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; customTools: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; schema: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>]>; func: z.ZodFunction<z.ZodTuple<[z.ZodRecord<z.ZodString, z.ZodUnknown>], z.ZodUnknown>, z.ZodPromise<z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }, { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }>, "many">>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; streaming: z.ZodDefault<z.ZodBoolean>; capabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodString; inputs: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>>; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; }, "strip", z.ZodTypeAny, { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }>, "many">>>; expectedOutputSchema: z.ZodOptional<z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>>; memoryEnabled: z.ZodDefault<z.ZodBoolean>; enableSlackHistory: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { message: string; images: ({ type: "base64"; data: string; mimeType: string; description?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[]; systemPrompt: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; maxRetries: number; jsonMode: boolean; reasoningEffort?: "low" | "medium" | "high" | undefined; provider?: string[] | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; }; tools: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; streaming: boolean; memoryEnabled: boolean; enableSlackHistory: boolean; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; capabilities?: { id: string; inputs: Record<string, string | number | boolean | string[]>; credentials?: Partial<Record<CredentialType, string>> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; }, { message: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; images?: ({ data: string; type?: "base64" | undefined; description?: string | undefined; mimeType?: string | undefined; } | { type: "url"; url: string; description?: string | undefined; })[] | undefined; conversationHistory?: { role: "user" | "assistant" | "tool"; content: string; toolCallId?: string | undefined; name?: string | undefined; }[] | undefined; systemPrompt?: string | undefined; model?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; provider?: string[] | undefined; jsonMode?: boolean | undefined; backupModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature?: number | undefined; maxTokens?: number | undefined; reasoningEffort?: "low" | "medium" | "high" | undefined; maxRetries?: number | undefined; } | undefined; } | undefined; tools?: { name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool"; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; customTools?: { description: string; name: string; schema: z.ZodTypeAny | Record<string, unknown>; func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>; }[] | undefined; maxIterations?: number | undefined; streaming?: boolean | undefined; capabilities?: { id: string; credentials?: Partial<Record<CredentialType, string>> | undefined; inputs?: Record<string, string | number | boolean | string[]> | undefined; }[] | undefined; expectedOutputSchema?: string | z.ZodTypeAny | undefined; memoryEnabled?: boolean | undefined; enableSlackHistory?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; reasoning: z.ZodOptional<z.ZodNullable<z.ZodString>>; toolCalls: z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">; iterations: z.ZodNumber; totalCost: z.ZodOptional<z.ZodNumber>; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }, { success: boolean; error: string; response: string; toolCalls: { tool: string; input?: unknown; output?: unknown; }[]; iterations: number; reasoning?: string | null | undefined; totalCost?: number | undefined; }>; static readonly shortDescription = "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode"; static readonly longDescription = "\n An AI agent powered by LangGraph that can use any tool bubble to answer questions.\n Use cases:\n - Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)\n - Multi-step reasoning with tool assistance\n - Tool-augmented conversations with any registered tool\n - JSON mode for structured output (strips markdown formatting)\n "; static readonly alias = "agent"; private factory; private beforeToolCallHook; private afterToolCallHook; private capabilityBeforeHooks; private capabilityAfterHooks; private afterLLMCallHook; private streamingCallback; private shouldStopAfterTools; private shouldContinueToAgent; private rescueAttempts; private static readonly MAX_RESCUE_ATTEMPTS; constructor(params?: AIAgentParams, context?: BubbleContext, instanceId?: string); testCredential(): Promise<boolean>; private buildModelConfig; private executeWithModel; private beforeAction; protected performAction(context?: BubbleContext): Promise<AIAgentResult>; private runMemoryReflectionIfNeeded; protected getCredentialType(): CredentialType; private getCredentialTypeForModel; protected chooseCredential(): string | undefined; private isDeepResearchModel; private executeDeepResearchViaOpenRouter; private initializeModel; private initializeTools; private resolveCapabilityCredentials; private resolveCapabilityToolNode; private jsonSchemaToZod; private executeToolsWithHooks; private createAgentGraph; private executeAgent; }
342
342
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
343
343
  export declare abstract class ServiceBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> { readonly type: "service"; authType?: 'oauth' | 'apikey' | 'none' | 'connection-string'; constructor(params: unknown, context?: BubbleContext, instanceId?: string); abstract testCredential(): Promise<boolean>; protected abstract chooseCredential(): string | undefined; getCredentialMetadata(): Promise<DatabaseMetadata | undefined>; get currentParams(): Omit<TParams, 'credentials'>; setParam<K extends keyof TParams>(paramName: K, paramValue: TParams[K]): void; get currentContext(): BubbleContext | undefined; }
344
344
  export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
@@ -465,7 +465,7 @@ export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider
465
465
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
466
466
  export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
467
467
  export declare abstract class WorkflowBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IWorkflowBubble<TResult> { readonly type: "workflow"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); get currentParams(): TParams; get currentContext(): BubbleContext | undefined; }
468
- declare const SlackFormatterAgentParamsSchema: z.ZodObject<{ message: z.ZodString; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeBlockKit: z.ZodDefault<z.ZodBoolean>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; additionalContext: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }; tools: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; includeBlockKit: boolean; credentials?: Partial<Record<CredentialType, string>> | undefined; additionalContext?: string | undefined; }, { message: string; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; tools?: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; maxIterations?: number | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; includeBlockKit?: boolean | undefined; }>; declare const SlackFormatterAgentResultSchema: z.ZodObject<{ response: z.ZodString; blocks: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["section", "header", "divider", "context", "actions", "input", "file", "image", "table"]>; text: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>>; block_id: z.ZodOptional<z.ZodString>; accessory: z.ZodOptional<z.ZodUnknown>; fields: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; element: z.ZodOptional<z.ZodUnknown>; label: z.ZodOptional<z.ZodUnknown>; hint: z.ZodOptional<z.ZodUnknown>; optional: z.ZodOptional<z.ZodBoolean>; alt_text: z.ZodOptional<z.ZodString>; image_url: z.ZodOptional<z.ZodString>; title: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text"; text: string; emoji?: boolean | undefined; }, { type: "plain_text"; text: string; emoji?: boolean | undefined; }>>; elements: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }>, "many">>; metadata: z.ZodObject<{ verbosityLevel: z.ZodString; technicalityLevel: z.ZodString; wordCount: z.ZodNumber; blockCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }>; toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">>; iterations: z.ZodNumber; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }>; type SlackFormatterAgentParams = z.input<typeof SlackFormatterAgentParamsSchema>;; type SlackFormatterAgentParamsParsed = z.output<typeof SlackFormatterAgentParamsSchema>; type SlackFormatterAgentResult = z.output<typeof SlackFormatterAgentResultSchema>; export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackFormatterAgentParamsParsed, SlackFormatterAgentResult> { static readonly type: "service"; static readonly service = "slack-formatter-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeBlockKit: z.ZodDefault<z.ZodBoolean>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; additionalContext: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }; tools: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; includeBlockKit: boolean; credentials?: Partial<Record<CredentialType, string>> | undefined; additionalContext?: string | undefined; }, { message: string; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; tools?: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; maxIterations?: number | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; includeBlockKit?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; blocks: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["section", "header", "divider", "context", "actions", "input", "file", "image", "table"]>; text: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>>; block_id: z.ZodOptional<z.ZodString>; accessory: z.ZodOptional<z.ZodUnknown>; fields: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; element: z.ZodOptional<z.ZodUnknown>; label: z.ZodOptional<z.ZodUnknown>; hint: z.ZodOptional<z.ZodUnknown>; optional: z.ZodOptional<z.ZodBoolean>; alt_text: z.ZodOptional<z.ZodString>; image_url: z.ZodOptional<z.ZodString>; title: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text"; text: string; emoji?: boolean | undefined; }, { type: "plain_text"; text: string; emoji?: boolean | undefined; }>>; elements: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }>, "many">>; metadata: z.ZodObject<{ verbosityLevel: z.ZodString; technicalityLevel: z.ZodString; wordCount: z.ZodNumber; blockCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }>; toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">>; iterations: z.ZodNumber; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }>; static readonly shortDescription = "AI agent for creating well-formatted Slack messages with adjustable verbosity and technicality"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "slack-format"; private factory; constructor(params?: SlackFormatterAgentParams, context?: BubbleContext); testCredential(): Promise<boolean>; protected performAction(context?: BubbleContext): Promise<SlackFormatterAgentResult>; protected chooseCredential(): string | undefined; private createSlackFormatterPrompt; private initializeModel; private initializeTools; private createAgentGraph; private executeAgent; private extractSlackBlocks; private validateAndFixSlackBlocks; }
468
+ declare const SlackFormatterAgentParamsSchema: z.ZodObject<{ message: z.ZodString; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeBlockKit: z.ZodDefault<z.ZodBoolean>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; additionalContext: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }; tools: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; includeBlockKit: boolean; credentials?: Partial<Record<CredentialType, string>> | undefined; additionalContext?: string | undefined; }, { message: string; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; tools?: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; maxIterations?: number | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; includeBlockKit?: boolean | undefined; }>; declare const SlackFormatterAgentResultSchema: z.ZodObject<{ response: z.ZodString; blocks: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["section", "header", "divider", "context", "actions", "input", "file", "image", "table"]>; text: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>>; block_id: z.ZodOptional<z.ZodString>; accessory: z.ZodOptional<z.ZodUnknown>; fields: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; element: z.ZodOptional<z.ZodUnknown>; label: z.ZodOptional<z.ZodUnknown>; hint: z.ZodOptional<z.ZodUnknown>; optional: z.ZodOptional<z.ZodBoolean>; alt_text: z.ZodOptional<z.ZodString>; image_url: z.ZodOptional<z.ZodString>; title: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text"; text: string; emoji?: boolean | undefined; }, { type: "plain_text"; text: string; emoji?: boolean | undefined; }>>; elements: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }>, "many">>; metadata: z.ZodObject<{ verbosityLevel: z.ZodString; technicalityLevel: z.ZodString; wordCount: z.ZodNumber; blockCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }>; toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">>; iterations: z.ZodNumber; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }>; type SlackFormatterAgentParams = z.input<typeof SlackFormatterAgentParamsSchema>;; type SlackFormatterAgentParamsParsed = z.output<typeof SlackFormatterAgentParamsSchema>; type SlackFormatterAgentResult = z.output<typeof SlackFormatterAgentResultSchema>; export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackFormatterAgentParamsParsed, SlackFormatterAgentResult> { static readonly type: "service"; static readonly service = "slack-formatter-agent"; static readonly authType: "apikey"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ message: z.ZodString; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeBlockKit: z.ZodDefault<z.ZodBoolean>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; model: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; tools: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; credentials: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>>; config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }, { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }>, "many">>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; additionalContext: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { message: string; model: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }; tools: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[]; maxIterations: number; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; includeBlockKit: boolean; credentials?: Partial<Record<CredentialType, string>> | undefined; additionalContext?: string | undefined; }, { message: string; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; tools?: { name: string; credentials?: Partial<Record<CredentialType, string>> | undefined; config?: Record<string, unknown> | undefined; }[] | undefined; maxIterations?: number | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; includeBlockKit?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ response: z.ZodString; blocks: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["section", "header", "divider", "context", "actions", "input", "file", "image", "table"]>; text: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>>; block_id: z.ZodOptional<z.ZodString>; accessory: z.ZodOptional<z.ZodUnknown>; fields: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; element: z.ZodOptional<z.ZodUnknown>; label: z.ZodOptional<z.ZodUnknown>; hint: z.ZodOptional<z.ZodUnknown>; optional: z.ZodOptional<z.ZodBoolean>; alt_text: z.ZodOptional<z.ZodString>; image_url: z.ZodOptional<z.ZodString>; title: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["plain_text"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text"; text: string; emoji?: boolean | undefined; }, { type: "plain_text"; text: string; emoji?: boolean | undefined; }>>; elements: z.ZodOptional<z.ZodArray<z.ZodObject<{ type: z.ZodEnum<["plain_text", "mrkdwn"]>; text: z.ZodString; emoji: z.ZodOptional<z.ZodBoolean>; verbatim: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }, { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }, { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }>, "many">>; metadata: z.ZodObject<{ verbosityLevel: z.ZodString; technicalityLevel: z.ZodString; wordCount: z.ZodNumber; blockCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }, { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }>; toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{ tool: z.ZodString; input: z.ZodUnknown; output: z.ZodUnknown; }, "strip", z.ZodTypeAny, { tool: string; input?: unknown; output?: unknown; }, { tool: string; input?: unknown; output?: unknown; }>, "many">>; iterations: z.ZodNumber; error: z.ZodString; success: z.ZodBoolean; }, "strip", z.ZodTypeAny, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }, { success: boolean; error: string; response: string; iterations: number; metadata: { wordCount: number; verbosityLevel: string; technicalityLevel: string; blockCount?: number | undefined; }; toolCalls?: { tool: string; input?: unknown; output?: unknown; }[] | undefined; blocks?: { type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions" | "table"; title?: { type: "plain_text"; text: string; emoji?: boolean | undefined; } | undefined; fields?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; text?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; } | undefined; image_url?: string | undefined; alt_text?: string | undefined; elements?: { type: "plain_text" | "mrkdwn"; text: string; emoji?: boolean | undefined; verbatim?: boolean | undefined; }[] | undefined; label?: unknown; optional?: boolean | undefined; element?: unknown; block_id?: string | undefined; accessory?: unknown; hint?: unknown; }[] | undefined; }>; static readonly shortDescription = "AI agent for creating well-formatted Slack messages with adjustable verbosity and technicality"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "slack-format"; private factory; constructor(params?: SlackFormatterAgentParams, context?: BubbleContext); testCredential(): Promise<boolean>; protected performAction(context?: BubbleContext): Promise<SlackFormatterAgentResult>; protected chooseCredential(): string | undefined; private createSlackFormatterPrompt; private initializeModel; private initializeTools; private createAgentGraph; private executeAgent; private extractSlackBlocks; private validateAndFixSlackBlocks; }
469
469
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
470
470
  export declare abstract class ServiceBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> { readonly type: "service"; authType?: 'oauth' | 'apikey' | 'none' | 'connection-string'; constructor(params: unknown, context?: BubbleContext, instanceId?: string); abstract testCredential(): Promise<boolean>; protected abstract chooseCredential(): string | undefined; getCredentialMetadata(): Promise<DatabaseMetadata | undefined>; get currentParams(): Omit<TParams, 'credentials'>; setParam<K extends keyof TParams>(paramName: K, paramValue: TParams[K]): void; get currentContext(): BubbleContext | undefined; }
471
471
  export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
@@ -1432,7 +1432,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
1432
1432
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
1433
1433
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
1434
1434
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
1435
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const SlackNotifierParamsSchema: z.ZodObject<{ contentToFormat: z.ZodString; originalUserQuery: z.ZodOptional<z.ZodString>; targetChannel: z.ZodString; messageTitle: z.ZodOptional<z.ZodString>; messageStyle: z.ZodDefault<z.ZodEnum<["professional", "casual", "technical", "concise", "detailed"]>>; includeFormatting: z.ZodDefault<z.ZodBoolean>; maxMessageLength: z.ZodDefault<z.ZodNumber>; aiModel: z.ZodOptional<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { contentToFormat: string; targetChannel: string; messageStyle: "professional" | "casual" | "technical" | "concise" | "detailed"; includeFormatting: boolean; maxMessageLength: number; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; aiModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; } | undefined; }, { contentToFormat: string; targetChannel: string; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; messageStyle?: "professional" | "casual" | "technical" | "concise" | "detailed" | undefined; includeFormatting?: boolean | undefined; maxMessageLength?: number | undefined; aiModel?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; }>; type SlackNotifierParamsInput = z.input<typeof SlackNotifierParamsSchema>;; type SlackNotifierParams = z.output<typeof SlackNotifierParamsSchema>; declare const SlackNotifierResultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; messageInfo: z.ZodOptional<z.ZodObject<{ messageTimestamp: z.ZodOptional<z.ZodString>; channelId: z.ZodOptional<z.ZodString>; channelName: z.ZodOptional<z.ZodString>; formattedMessage: z.ZodOptional<z.ZodString>; messageLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }>>; formattingInfo: z.ZodOptional<z.ZodObject<{ modelUsed: z.ZodOptional<z.ZodString>; wasTruncated: z.ZodDefault<z.ZodBoolean>; originalLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; }, { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; } | undefined; }, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; } | undefined; }>; type SlackNotifierResult = z.infer<typeof SlackNotifierResultSchema>; export declare class SlackNotifierWorkflowBubble extends WorkflowBubble<SlackNotifierParams, SlackNotifierResult> { static readonly bubbleName = "slack-notifier"; static readonly schema: z.ZodObject<{ contentToFormat: z.ZodString; originalUserQuery: z.ZodOptional<z.ZodString>; targetChannel: z.ZodString; messageTitle: z.ZodOptional<z.ZodString>; messageStyle: z.ZodDefault<z.ZodEnum<["professional", "casual", "technical", "concise", "detailed"]>>; includeFormatting: z.ZodDefault<z.ZodBoolean>; maxMessageLength: z.ZodDefault<z.ZodNumber>; aiModel: z.ZodOptional<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { contentToFormat: string; targetChannel: string; messageStyle: "professional" | "casual" | "technical" | "concise" | "detailed"; includeFormatting: boolean; maxMessageLength: number; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; aiModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; } | undefined; }, { contentToFormat: string; targetChannel: string; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; messageStyle?: "professional" | "casual" | "technical" | "concise" | "detailed" | undefined; includeFormatting?: boolean | undefined; maxMessageLength?: number | undefined; aiModel?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; }>; static readonly resultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; messageInfo: z.ZodOptional<z.ZodObject<{ messageTimestamp: z.ZodOptional<z.ZodString>; channelId: z.ZodOptional<z.ZodString>; channelName: z.ZodOptional<z.ZodString>; formattedMessage: z.ZodOptional<z.ZodString>; messageLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }>>; formattingInfo: z.ZodOptional<z.ZodObject<{ modelUsed: z.ZodOptional<z.ZodString>; wasTruncated: z.ZodDefault<z.ZodBoolean>; originalLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; }, { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; } | undefined; }, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; } | undefined; }>; static readonly shortDescription = "Data analyst-powered Slack notifications that tell compelling stories"; static readonly longDescription = "Transforms raw data and insights into engaging, conversational Slack messages that colleagues actually want to read. Uses AI with a data analyst personality to spot patterns, provide context, and make information actionable. Perfect for sharing analysis results, automated reports, and business intelligence updates with natural, human-like communication."; static readonly alias = "notify-slack"; static readonly type: "workflow"; constructor(params: SlackNotifierParamsInput, context?: BubbleContext, instanceId?: string); protected performAction(): Promise<SlackNotifierResult>; private findSlackChannel; private formatContentWithAI; private sendToSlack; private buildFormattingPrompt; }
1435
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const SlackNotifierParamsSchema: z.ZodObject<{ contentToFormat: z.ZodString; originalUserQuery: z.ZodOptional<z.ZodString>; targetChannel: z.ZodString; messageTitle: z.ZodOptional<z.ZodString>; messageStyle: z.ZodDefault<z.ZodEnum<["professional", "casual", "technical", "concise", "detailed"]>>; includeFormatting: z.ZodDefault<z.ZodBoolean>; maxMessageLength: z.ZodDefault<z.ZodNumber>; aiModel: z.ZodOptional<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { contentToFormat: string; targetChannel: string; messageStyle: "professional" | "casual" | "technical" | "concise" | "detailed"; includeFormatting: boolean; maxMessageLength: number; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; aiModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; } | undefined; }, { contentToFormat: string; targetChannel: string; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; messageStyle?: "professional" | "casual" | "technical" | "concise" | "detailed" | undefined; includeFormatting?: boolean | undefined; maxMessageLength?: number | undefined; aiModel?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; }>; type SlackNotifierParamsInput = z.input<typeof SlackNotifierParamsSchema>;; type SlackNotifierParams = z.output<typeof SlackNotifierParamsSchema>; declare const SlackNotifierResultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; messageInfo: z.ZodOptional<z.ZodObject<{ messageTimestamp: z.ZodOptional<z.ZodString>; channelId: z.ZodOptional<z.ZodString>; channelName: z.ZodOptional<z.ZodString>; formattedMessage: z.ZodOptional<z.ZodString>; messageLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }>>; formattingInfo: z.ZodOptional<z.ZodObject<{ modelUsed: z.ZodOptional<z.ZodString>; wasTruncated: z.ZodDefault<z.ZodBoolean>; originalLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; }, { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; } | undefined; }, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; } | undefined; }>; type SlackNotifierResult = z.infer<typeof SlackNotifierResultSchema>; export declare class SlackNotifierWorkflowBubble extends WorkflowBubble<SlackNotifierParams, SlackNotifierResult> { static readonly bubbleName = "slack-notifier"; static readonly schema: z.ZodObject<{ contentToFormat: z.ZodString; originalUserQuery: z.ZodOptional<z.ZodString>; targetChannel: z.ZodString; messageTitle: z.ZodOptional<z.ZodString>; messageStyle: z.ZodDefault<z.ZodEnum<["professional", "casual", "technical", "concise", "detailed"]>>; includeFormatting: z.ZodDefault<z.ZodBoolean>; maxMessageLength: z.ZodDefault<z.ZodNumber>; aiModel: z.ZodOptional<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { contentToFormat: string; targetChannel: string; messageStyle: "professional" | "casual" | "technical" | "concise" | "detailed"; includeFormatting: boolean; maxMessageLength: number; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; aiModel?: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; } | undefined; }, { contentToFormat: string; targetChannel: string; credentials?: Partial<Record<CredentialType, string>> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; messageStyle?: "professional" | "casual" | "technical" | "concise" | "detailed" | undefined; includeFormatting?: boolean | undefined; maxMessageLength?: number | undefined; aiModel?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; }>; static readonly resultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; messageInfo: z.ZodOptional<z.ZodObject<{ messageTimestamp: z.ZodOptional<z.ZodString>; channelId: z.ZodOptional<z.ZodString>; channelName: z.ZodOptional<z.ZodString>; formattedMessage: z.ZodOptional<z.ZodString>; messageLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }, { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; }>>; formattingInfo: z.ZodOptional<z.ZodObject<{ modelUsed: z.ZodOptional<z.ZodString>; wasTruncated: z.ZodDefault<z.ZodBoolean>; originalLength: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; }, { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; } | undefined; }, { success: boolean; error: string; messageInfo?: { channelName?: string | undefined; messageTimestamp?: string | undefined; channelId?: string | undefined; formattedMessage?: string | undefined; messageLength?: number | undefined; } | undefined; formattingInfo?: { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; } | undefined; }>; static readonly shortDescription = "Data analyst-powered Slack notifications that tell compelling stories"; static readonly longDescription = "Transforms raw data and insights into engaging, conversational Slack messages that colleagues actually want to read. Uses AI with a data analyst personality to spot patterns, provide context, and make information actionable. Perfect for sharing analysis results, automated reports, and business intelligence updates with natural, human-like communication."; static readonly alias = "notify-slack"; static readonly type: "workflow"; constructor(params: SlackNotifierParamsInput, context?: BubbleContext, instanceId?: string); protected performAction(): Promise<SlackNotifierResult>; private findSlackChannel; private formatContentWithAI; private sendToSlack; private buildFormattingPrompt; }
1436
1436
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
1437
1437
  export declare abstract class WorkflowBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IWorkflowBubble<TResult> { readonly type: "workflow"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); get currentParams(): TParams; get currentContext(): BubbleContext | undefined; }
1438
1438
  export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
@@ -1451,7 +1451,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
1451
1451
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
1452
1452
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
1453
1453
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
1454
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const SlackDataAssistantParamsSchema: z.ZodObject<{ slackChannel: z.ZodString; slackThreadTs: z.ZodOptional<z.ZodString>; userQuestion: z.ZodString; userName: z.ZodOptional<z.ZodString>; name: z.ZodDefault<z.ZodString>; dataSourceType: z.ZodDefault<z.ZodEnum<["postgresql", "mysql", "sqlite", "mariadb", "mssql"]>>; databaseUrl: z.ZodOptional<z.ZodString>; ignoreSSLErrors: z.ZodDefault<z.ZodBoolean>; aiModel: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; injectedMetadata: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>; tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }>>; additionalContext: z.ZodOptional<z.ZodString>; maxQueries: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { name: string; temperature: number; dataSourceType: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql"; ignoreSSLErrors: boolean; aiModel: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; slackChannel: string; userQuestion: string; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; maxQueries: number; credentials?: Partial<Record<CredentialType, string>> | undefined; userName?: string | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; additionalContext?: string | undefined; }, { slackChannel: string; userQuestion: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; temperature?: number | undefined; userName?: string | undefined; dataSourceType?: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql" | undefined; ignoreSSLErrors?: boolean | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; aiModel?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; maxQueries?: number | undefined; }>; declare const SlackDataAssistantResultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; query: z.ZodOptional<z.ZodString>; queryExplanation: z.ZodOptional<z.ZodString>; queryResults: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>; formattedResponse: z.ZodOptional<z.ZodString>; slackBlocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>; slackMessageTs: z.ZodOptional<z.ZodString>; isDataQuestion: z.ZodOptional<z.ZodBoolean>; metadata: z.ZodOptional<z.ZodObject<{ executionTime: z.ZodNumber; rowCount: z.ZodOptional<z.ZodNumber>; wordCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }>; type SlackDataAssistantParams = z.input<typeof SlackDataAssistantParamsSchema>;; type SlackDataAssistantResult = z.output<typeof SlackDataAssistantResultSchema>; export declare class SlackDataAssistantWorkflow extends WorkflowBubble<SlackDataAssistantParams, SlackDataAssistantResult> { static readonly type: "workflow"; static readonly service = "slack-data-assistant"; static readonly bubbleName = "slack-data-assistant"; static readonly schema: z.ZodObject<{ slackChannel: z.ZodString; slackThreadTs: z.ZodOptional<z.ZodString>; userQuestion: z.ZodString; userName: z.ZodOptional<z.ZodString>; name: z.ZodDefault<z.ZodString>; dataSourceType: z.ZodDefault<z.ZodEnum<["postgresql", "mysql", "sqlite", "mariadb", "mssql"]>>; databaseUrl: z.ZodOptional<z.ZodString>; ignoreSSLErrors: z.ZodDefault<z.ZodBoolean>; aiModel: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; injectedMetadata: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>; tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }>>; additionalContext: z.ZodOptional<z.ZodString>; maxQueries: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { name: string; temperature: number; dataSourceType: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql"; ignoreSSLErrors: boolean; aiModel: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; slackChannel: string; userQuestion: string; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; maxQueries: number; credentials?: Partial<Record<CredentialType, string>> | undefined; userName?: string | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; additionalContext?: string | undefined; }, { slackChannel: string; userQuestion: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; temperature?: number | undefined; userName?: string | undefined; dataSourceType?: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql" | undefined; ignoreSSLErrors?: boolean | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; aiModel?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; maxQueries?: number | undefined; }>; static readonly resultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; query: z.ZodOptional<z.ZodString>; queryExplanation: z.ZodOptional<z.ZodString>; queryResults: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>; formattedResponse: z.ZodOptional<z.ZodString>; slackBlocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>; slackMessageTs: z.ZodOptional<z.ZodString>; isDataQuestion: z.ZodOptional<z.ZodBoolean>; metadata: z.ZodOptional<z.ZodObject<{ executionTime: z.ZodNumber; rowCount: z.ZodOptional<z.ZodNumber>; wordCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }>; static readonly shortDescription = "AI-powered Slack bot that answers data questions by querying databases"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "slack-data-bot"; constructor(params: SlackDataAssistantParams, context?: BubbleContext); private extractFirstName; private cleanBotName; private cleanUsername; private generateReadableNameFromUserId; protected performAction(): Promise<SlackDataAssistantResult>; private aggregateQueryResults; }
1454
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const SlackDataAssistantParamsSchema: z.ZodObject<{ slackChannel: z.ZodString; slackThreadTs: z.ZodOptional<z.ZodString>; userQuestion: z.ZodString; userName: z.ZodOptional<z.ZodString>; name: z.ZodDefault<z.ZodString>; dataSourceType: z.ZodDefault<z.ZodEnum<["postgresql", "mysql", "sqlite", "mariadb", "mssql"]>>; databaseUrl: z.ZodOptional<z.ZodString>; ignoreSSLErrors: z.ZodDefault<z.ZodBoolean>; aiModel: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; injectedMetadata: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>; tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }>>; additionalContext: z.ZodOptional<z.ZodString>; maxQueries: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { name: string; temperature: number; dataSourceType: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql"; ignoreSSLErrors: boolean; aiModel: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; slackChannel: string; userQuestion: string; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; maxQueries: number; credentials?: Partial<Record<CredentialType, string>> | undefined; userName?: string | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; additionalContext?: string | undefined; }, { slackChannel: string; userQuestion: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; temperature?: number | undefined; userName?: string | undefined; dataSourceType?: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql" | undefined; ignoreSSLErrors?: boolean | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; aiModel?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; maxQueries?: number | undefined; }>; declare const SlackDataAssistantResultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; query: z.ZodOptional<z.ZodString>; queryExplanation: z.ZodOptional<z.ZodString>; queryResults: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>; formattedResponse: z.ZodOptional<z.ZodString>; slackBlocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>; slackMessageTs: z.ZodOptional<z.ZodString>; isDataQuestion: z.ZodOptional<z.ZodBoolean>; metadata: z.ZodOptional<z.ZodObject<{ executionTime: z.ZodNumber; rowCount: z.ZodOptional<z.ZodNumber>; wordCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }>; type SlackDataAssistantParams = z.input<typeof SlackDataAssistantParamsSchema>;; type SlackDataAssistantResult = z.output<typeof SlackDataAssistantResultSchema>; export declare class SlackDataAssistantWorkflow extends WorkflowBubble<SlackDataAssistantParams, SlackDataAssistantResult> { static readonly type: "workflow"; static readonly service = "slack-data-assistant"; static readonly bubbleName = "slack-data-assistant"; static readonly schema: z.ZodObject<{ slackChannel: z.ZodString; slackThreadTs: z.ZodOptional<z.ZodString>; userQuestion: z.ZodString; userName: z.ZodOptional<z.ZodString>; name: z.ZodDefault<z.ZodString>; dataSourceType: z.ZodDefault<z.ZodEnum<["postgresql", "mysql", "sqlite", "mariadb", "mssql"]>>; databaseUrl: z.ZodOptional<z.ZodString>; ignoreSSLErrors: z.ZodDefault<z.ZodBoolean>; aiModel: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; verbosity: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; technicality: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4", "5"]>>; includeQuery: z.ZodDefault<z.ZodBoolean>; includeExplanation: z.ZodDefault<z.ZodBoolean>; injectedMetadata: z.ZodOptional<z.ZodObject<{ tables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>; tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }, { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; }>>; additionalContext: z.ZodOptional<z.ZodString>; maxQueries: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { name: string; temperature: number; dataSourceType: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql"; ignoreSSLErrors: boolean; aiModel: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; slackChannel: string; userQuestion: string; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; maxQueries: number; credentials?: Partial<Record<CredentialType, string>> | undefined; userName?: string | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; additionalContext?: string | undefined; }, { slackChannel: string; userQuestion: string; name?: string | undefined; credentials?: Partial<Record<CredentialType, string>> | undefined; temperature?: number | undefined; userName?: string | undefined; dataSourceType?: "postgresql" | "mysql" | "sqlite" | "mariadb" | "mssql" | undefined; ignoreSSLErrors?: boolean | undefined; injectedMetadata?: { tables?: Record<string, Record<string, string>> | undefined; tableNotes?: Record<string, string> | undefined; rules?: string[] | undefined; } | undefined; aiModel?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; verbosity?: "1" | "2" | "3" | "4" | "5" | undefined; technicality?: "1" | "2" | "3" | "4" | "5" | undefined; includeQuery?: boolean | undefined; includeExplanation?: boolean | undefined; additionalContext?: string | undefined; maxQueries?: number | undefined; }>; static readonly resultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; query: z.ZodOptional<z.ZodString>; queryExplanation: z.ZodOptional<z.ZodString>; queryResults: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>; formattedResponse: z.ZodOptional<z.ZodString>; slackBlocks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>; slackMessageTs: z.ZodOptional<z.ZodString>; isDataQuestion: z.ZodOptional<z.ZodBoolean>; metadata: z.ZodOptional<z.ZodObject<{ executionTime: z.ZodNumber; rowCount: z.ZodOptional<z.ZodNumber>; wordCount: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }, { success: boolean; error: string; query?: string | undefined; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; queryExplanation?: string | undefined; queryResults?: Record<string, unknown>[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }>; static readonly shortDescription = "AI-powered Slack bot that answers data questions by querying databases"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "slack-data-bot"; constructor(params: SlackDataAssistantParams, context?: BubbleContext); private extractFirstName; private cleanBotName; private cleanUsername; private generateReadableNameFromUserId; protected performAction(): Promise<SlackDataAssistantResult>; private aggregateQueryResults; }
1455
1455
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
1456
1456
  export declare abstract class WorkflowBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IWorkflowBubble<TResult> { readonly type: "workflow"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); get currentParams(): TParams; get currentContext(): BubbleContext | undefined; }
1457
1457
  export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
@@ -1489,7 +1489,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
1489
1489
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
1490
1490
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
1491
1491
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
1492
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const PDFOcrWorkflowParamsSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; pdfData: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "identify"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "identify"; pdfData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; pdfData: z.ZodString; clientInformation: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "autofill"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "autofill"; pdfData: string; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>]>; declare const PDFOcrWorkflowResultSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; fieldName: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: number; fieldName: string; confidence: number; }, { id: number; fieldName: string; confidence: number; }>, "many">; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; originalFieldName: z.ZodOptional<z.ZodString>; fieldName: z.ZodString; value: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }>, "many">; filledPdfData: z.ZodString; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; fillResults: z.ZodObject<{ filledFields: z.ZodNumber; successfullyFilled: z.ZodNumber; }, "strip", z.ZodTypeAny, { filledFields: number; successfullyFilled: number; }, { filledFields: number; successfullyFilled: number; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }>]>; type PDFOcrWorkflowParams = z.input<typeof PDFOcrWorkflowParamsSchema>;; type PDFOcrWorkflowResult = z.output<typeof PDFOcrWorkflowResultSchema>; export type PDFOcrModeResult<T extends PDFOcrWorkflowParams['mode']> = Extract<PDFOcrWorkflowResult, { mode: T; }>; export type PDFOcrOperationResult<T extends PDFOcrWorkflowParams['mode']> = Extract<PDFOcrWorkflowResult, { mode: T; }>; export declare class PDFOcrWorkflow<T extends PDFOcrWorkflowParams = PDFOcrWorkflowParams> extends WorkflowBubble<T, Extract<PDFOcrWorkflowResult, { mode: T['mode']; }>> { static readonly type: "workflow"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; pdfData: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "identify"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "identify"; pdfData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; pdfData: z.ZodString; clientInformation: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "autofill"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "autofill"; pdfData: string; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>]>; static readonly resultSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; fieldName: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: number; fieldName: string; confidence: number; }, { id: number; fieldName: string; confidence: number; }>, "many">; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; originalFieldName: z.ZodOptional<z.ZodString>; fieldName: z.ZodString; value: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }>, "many">; filledPdfData: z.ZodString; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; fillResults: z.ZodObject<{ filledFields: z.ZodNumber; successfullyFilled: z.ZodNumber; }, "strip", z.ZodTypeAny, { filledFields: number; successfullyFilled: number; }, { filledFields: number; successfullyFilled: number; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }>]>; static readonly shortDescription = "PDF OCR workflow: identify fields or autofill forms using AI analysis"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "pdf-ocr"; constructor(params: T, context?: BubbleContext); protected performAction(): Promise<Extract<PDFOcrWorkflowResult, { mode: T['mode']; }>>; }
1492
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const PDFOcrWorkflowParamsSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; pdfData: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "identify"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "identify"; pdfData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; pdfData: z.ZodString; clientInformation: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "autofill"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "autofill"; pdfData: string; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>]>; declare const PDFOcrWorkflowResultSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; fieldName: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: number; fieldName: string; confidence: number; }, { id: number; fieldName: string; confidence: number; }>, "many">; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; originalFieldName: z.ZodOptional<z.ZodString>; fieldName: z.ZodString; value: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }>, "many">; filledPdfData: z.ZodString; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; fillResults: z.ZodObject<{ filledFields: z.ZodNumber; successfullyFilled: z.ZodNumber; }, "strip", z.ZodTypeAny, { filledFields: number; successfullyFilled: number; }, { filledFields: number; successfullyFilled: number; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }>]>; type PDFOcrWorkflowParams = z.input<typeof PDFOcrWorkflowParamsSchema>;; type PDFOcrWorkflowResult = z.output<typeof PDFOcrWorkflowResultSchema>; export type PDFOcrModeResult<T extends PDFOcrWorkflowParams['mode']> = Extract<PDFOcrWorkflowResult, { mode: T; }>; export type PDFOcrOperationResult<T extends PDFOcrWorkflowParams['mode']> = Extract<PDFOcrWorkflowResult, { mode: T; }>; export declare class PDFOcrWorkflow<T extends PDFOcrWorkflowParams = PDFOcrWorkflowParams> extends WorkflowBubble<T, Extract<PDFOcrWorkflowResult, { mode: T['mode']; }>> { static readonly type: "workflow"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; pdfData: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "identify"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "identify"; pdfData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; pdfData: z.ZodString; clientInformation: z.ZodString; discoveryOptions: z.ZodDefault<z.ZodObject<{ targetPage: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { targetPage?: number | undefined; }, { targetPage?: number | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { mode: "autofill"; pdfData: string; discoveryOptions: { targetPage?: number | undefined; }; imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { mode: "autofill"; pdfData: string; clientInformation: string; credentials?: Partial<Record<CredentialType, string>> | undefined; discoveryOptions?: { targetPage?: number | undefined; } | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; }>]>; static readonly resultSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{ mode: z.ZodLiteral<"identify">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; fieldName: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: number; fieldName: string; confidence: number; }, { id: number; fieldName: string; confidence: number; }>, "many">; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }, { success: boolean; error: string; mode: "identify"; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { id: number; fieldName: string; confidence: number; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; }>, z.ZodObject<{ mode: z.ZodLiteral<"autofill">; extractedFields: z.ZodArray<z.ZodObject<{ id: z.ZodNumber; originalFieldName: z.ZodOptional<z.ZodString>; fieldName: z.ZodString; value: z.ZodString; confidence: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }, { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }>, "many">; filledPdfData: z.ZodString; discoveryData: z.ZodObject<{ totalFields: z.ZodNumber; fieldsWithCoordinates: z.ZodNumber; pages: z.ZodArray<z.ZodNumber, "many">; }, "strip", z.ZodTypeAny, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }, { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }>; imageData: z.ZodObject<{ totalPages: z.ZodNumber; convertedPages: z.ZodNumber; format: z.ZodString; dpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { format: string; dpi: number; totalPages: number; convertedPages: number; }, { format: string; dpi: number; totalPages: number; convertedPages: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; fillResults: z.ZodObject<{ filledFields: z.ZodNumber; successfullyFilled: z.ZodNumber; }, "strip", z.ZodTypeAny, { filledFields: number; successfullyFilled: number; }, { filledFields: number; successfullyFilled: number; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }, { success: boolean; error: string; mode: "autofill"; filledPdfData: string; imageData: { format: string; dpi: number; totalPages: number; convertedPages: number; }; extractedFields: { value: string; id: number; fieldName: string; confidence: number; originalFieldName?: string | undefined; }[]; discoveryData: { pages: number[]; totalFields: number; fieldsWithCoordinates: number; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; fillResults: { filledFields: number; successfullyFilled: number; }; }>]>; static readonly shortDescription = "PDF OCR workflow: identify fields or autofill forms using AI analysis"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "pdf-ocr"; constructor(params: T, context?: BubbleContext); protected performAction(): Promise<Extract<PDFOcrWorkflowResult, { mode: T['mode']; }>>; }
1493
1493
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
1494
1494
  export declare abstract class WorkflowBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IWorkflowBubble<TResult> { readonly type: "workflow"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); get currentParams(): TParams; get currentContext(): BubbleContext | undefined; }
1495
1495
  export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
@@ -1508,7 +1508,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
1508
1508
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
1509
1509
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
1510
1510
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
1511
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const GenerateDocumentWorkflowParamsSchema: z.ZodObject<{ documents: z.ZodArray<z.ZodObject<{ content: z.ZodString; index: z.ZodNumber; metadata: z.ZodOptional<z.ZodObject<{ originalFilename: z.ZodOptional<z.ZodString>; pageCount: z.ZodOptional<z.ZodNumber>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }>, "many">; outputDescription: z.ZodString; outputFormat: z.ZodDefault<z.ZodEnum<["html", "csv", "json"]>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; outputFormat: "html" | "json" | "csv"; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; credentials?: Partial<Record<CredentialType, string>> | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; outputFormat?: "html" | "json" | "csv" | undefined; }>; declare const GenerateDocumentWorkflowResultSchema: z.ZodObject<{ columns: z.ZodArray<z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["string", "number", "integer", "float", "date", "boolean"]>; description: z.ZodString; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }>, "many">; rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, "many">; metadata: z.ZodObject<{ totalDocuments: z.ZodNumber; totalRows: z.ZodNumber; totalColumns: z.ZodNumber; processingTime: z.ZodNumber; extractedFrom: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }>; generatedFiles: z.ZodObject<{ html: z.ZodOptional<z.ZodString>; csv: z.ZodOptional<z.ZodString>; json: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }>; type GenerateDocumentWorkflowParams = z.input<typeof GenerateDocumentWorkflowParamsSchema>;; type GenerateDocumentWorkflowResult = z.output<typeof GenerateDocumentWorkflowResultSchema>; export declare class GenerateDocumentWorkflow extends WorkflowBubble<GenerateDocumentWorkflowParams, GenerateDocumentWorkflowResult> { static readonly type: "workflow"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ documents: z.ZodArray<z.ZodObject<{ content: z.ZodString; index: z.ZodNumber; metadata: z.ZodOptional<z.ZodObject<{ originalFilename: z.ZodOptional<z.ZodString>; pageCount: z.ZodOptional<z.ZodNumber>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }>, "many">; outputDescription: z.ZodString; outputFormat: z.ZodDefault<z.ZodEnum<["html", "csv", "json"]>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; outputFormat: "html" | "json" | "csv"; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; credentials?: Partial<Record<CredentialType, string>> | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; outputFormat?: "html" | "json" | "csv" | undefined; }>; static readonly resultSchema: z.ZodObject<{ columns: z.ZodArray<z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["string", "number", "integer", "float", "date", "boolean"]>; description: z.ZodString; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }>, "many">; rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, "many">; metadata: z.ZodObject<{ totalDocuments: z.ZodNumber; totalRows: z.ZodNumber; totalColumns: z.ZodNumber; processingTime: z.ZodNumber; extractedFrom: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }>; generatedFiles: z.ZodObject<{ html: z.ZodOptional<z.ZodString>; csv: z.ZodOptional<z.ZodString>; json: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }>; static readonly shortDescription = "Generate Document workflow: convert markdown to structured formats using AI"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "generate-doc"; constructor(params: GenerateDocumentWorkflowParams, context?: BubbleContext); protected performAction(): Promise<GenerateDocumentWorkflowResult>; private generateCSV; private normalizeColumnType; private normalizeRowValue; private generateHTML; }
1511
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const GenerateDocumentWorkflowParamsSchema: z.ZodObject<{ documents: z.ZodArray<z.ZodObject<{ content: z.ZodString; index: z.ZodNumber; metadata: z.ZodOptional<z.ZodObject<{ originalFilename: z.ZodOptional<z.ZodString>; pageCount: z.ZodOptional<z.ZodNumber>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }>, "many">; outputDescription: z.ZodString; outputFormat: z.ZodDefault<z.ZodEnum<["html", "csv", "json"]>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; outputFormat: "html" | "json" | "csv"; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; credentials?: Partial<Record<CredentialType, string>> | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; outputFormat?: "html" | "json" | "csv" | undefined; }>; declare const GenerateDocumentWorkflowResultSchema: z.ZodObject<{ columns: z.ZodArray<z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["string", "number", "integer", "float", "date", "boolean"]>; description: z.ZodString; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }>, "many">; rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, "many">; metadata: z.ZodObject<{ totalDocuments: z.ZodNumber; totalRows: z.ZodNumber; totalColumns: z.ZodNumber; processingTime: z.ZodNumber; extractedFrom: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }>; generatedFiles: z.ZodObject<{ html: z.ZodOptional<z.ZodString>; csv: z.ZodOptional<z.ZodString>; json: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }>; type GenerateDocumentWorkflowParams = z.input<typeof GenerateDocumentWorkflowParamsSchema>;; type GenerateDocumentWorkflowResult = z.output<typeof GenerateDocumentWorkflowResultSchema>; export declare class GenerateDocumentWorkflow extends WorkflowBubble<GenerateDocumentWorkflowParams, GenerateDocumentWorkflowResult> { static readonly type: "workflow"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ documents: z.ZodArray<z.ZodObject<{ content: z.ZodString; index: z.ZodNumber; metadata: z.ZodOptional<z.ZodObject<{ originalFilename: z.ZodOptional<z.ZodString>; pageCount: z.ZodOptional<z.ZodNumber>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; fileUrl?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }, { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }, { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }>, "many">; outputDescription: z.ZodString; outputFormat: z.ZodDefault<z.ZodEnum<["html", "csv", "json"]>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; outputFormat: "html" | "json" | "csv"; credentials?: Partial<Record<CredentialType, string>> | undefined; }, { documents: { content: string; index: number; metadata?: { pageCount?: number | undefined; originalFilename?: string | undefined; uploadedImages?: { fileName: string; pageNumber: number; fileUrl?: string | undefined; }[] | undefined; } | undefined; }[]; outputDescription: string; credentials?: Partial<Record<CredentialType, string>> | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; outputFormat?: "html" | "json" | "csv" | undefined; }>; static readonly resultSchema: z.ZodObject<{ columns: z.ZodArray<z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["string", "number", "integer", "float", "date", "boolean"]>; description: z.ZodString; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }, { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }>, "many">; rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, "many">; metadata: z.ZodObject<{ totalDocuments: z.ZodNumber; totalRows: z.ZodNumber; totalColumns: z.ZodNumber; processingTime: z.ZodNumber; extractedFrom: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }, { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }>; generatedFiles: z.ZodObject<{ html: z.ZodOptional<z.ZodString>; csv: z.ZodOptional<z.ZodString>; json: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }, { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime?: number | undefined; }, { model: string; iterations: number; processingTime?: number | undefined; }>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }, { success: boolean; error: string; rows: Record<string, string | number | boolean | null>[]; metadata: { processingTime: number; totalDocuments: number; totalRows: number; totalColumns: number; extractedFrom: string[]; }; aiAnalysis: { model: string; iterations: number; processingTime?: number | undefined; }; columns: { type: "string" | "number" | "boolean" | "integer" | "float" | "date"; description: string; name: string; }[]; generatedFiles: { html?: string | undefined; json?: string | undefined; csv?: string | undefined; }; }>; static readonly shortDescription = "Generate Document workflow: convert markdown to structured formats using AI"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "generate-doc"; constructor(params: GenerateDocumentWorkflowParams, context?: BubbleContext); protected performAction(): Promise<GenerateDocumentWorkflowResult>; private generateCSV; private normalizeColumnType; private normalizeRowValue; private generateHTML; }
1512
1512
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
1513
1513
  export declare abstract class WorkflowBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IWorkflowBubble<TResult> { readonly type: "workflow"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); get currentParams(): TParams; get currentContext(): BubbleContext | undefined; }
1514
1514
  export declare class BubbleError extends Error { readonly variableId?: number; readonly bubbleName?: string; constructor(message: string, options?: { variableId?: number; bubbleName?: string; cause?: Error; }); }
@@ -1527,7 +1527,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
1527
1527
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
1528
1528
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
1529
1529
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
1530
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const ParseDocumentWorkflowParamsSchema: z.ZodObject<{ documentData: z.ZodString; documentType: z.ZodDefault<z.ZodEnum<["pdf", "image"]>>; isFileUrl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; conversionOptions: z.ZodDefault<z.ZodObject<{ preserveStructure: z.ZodDefault<z.ZodBoolean>; includeVisualDescriptions: z.ZodDefault<z.ZodBoolean>; extractNumericalData: z.ZodDefault<z.ZodBoolean>; combinePages: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }, { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; storageOptions: z.ZodOptional<z.ZodObject<{ uploadImages: z.ZodDefault<z.ZodBoolean>; bucketName: z.ZodOptional<z.ZodString>; pageImageUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; uploadUrl: z.ZodString; fileName: z.ZodString; }, "strip", z.ZodTypeAny, { fileName: string; uploadUrl: string; pageNumber: number; }, { fileName: string; uploadUrl: string; pageNumber: number; }>, "many">>; userId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }, { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documentData: string; documentType: "image" | "pdf"; isFileUrl: boolean; conversionOptions: { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; storageOptions?: { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }, { documentData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; documentType?: "image" | "pdf" | undefined; isFileUrl?: boolean | undefined; conversionOptions?: { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; } | undefined; storageOptions?: { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }>; declare const ParseDocumentWorkflowResultSchema: z.ZodObject<{ markdown: z.ZodString; pages: z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; markdown: z.ZodString; hasCharts: z.ZodBoolean; hasTables: z.ZodBoolean; hasImages: z.ZodBoolean; }, "strip", z.ZodTypeAny, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }>, "many">; metadata: z.ZodObject<{ totalPages: z.ZodNumber; processedPages: z.ZodNumber; hasVisualElements: z.ZodBoolean; processingTime: z.ZodNumber; imageFormat: z.ZodString; imageDpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }>; conversionSummary: z.ZodObject<{ totalCharacters: z.ZodNumber; tablesExtracted: z.ZodNumber; chartsDescribed: z.ZodNumber; imagesDescribed: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodNumber; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime: number; }, { model: string; iterations: number; processingTime: number; }>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; uploaded: z.ZodBoolean; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }>, "many">>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }>; type ParseDocumentWorkflowParams = z.input<typeof ParseDocumentWorkflowParamsSchema>;; type ParseDocumentWorkflowResult = z.output<typeof ParseDocumentWorkflowResultSchema>; export declare class ParseDocumentWorkflow extends WorkflowBubble<ParseDocumentWorkflowParams, ParseDocumentWorkflowResult> { static readonly type: "workflow"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ documentData: z.ZodString; documentType: z.ZodDefault<z.ZodEnum<["pdf", "image"]>>; isFileUrl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; conversionOptions: z.ZodDefault<z.ZodObject<{ preserveStructure: z.ZodDefault<z.ZodBoolean>; includeVisualDescriptions: z.ZodDefault<z.ZodBoolean>; extractNumericalData: z.ZodDefault<z.ZodBoolean>; combinePages: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }, { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; storageOptions: z.ZodOptional<z.ZodObject<{ uploadImages: z.ZodDefault<z.ZodBoolean>; bucketName: z.ZodOptional<z.ZodString>; pageImageUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; uploadUrl: z.ZodString; fileName: z.ZodString; }, "strip", z.ZodTypeAny, { fileName: string; uploadUrl: string; pageNumber: number; }, { fileName: string; uploadUrl: string; pageNumber: number; }>, "many">>; userId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }, { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documentData: string; documentType: "image" | "pdf"; isFileUrl: boolean; conversionOptions: { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; storageOptions?: { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }, { documentData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; documentType?: "image" | "pdf" | undefined; isFileUrl?: boolean | undefined; conversionOptions?: { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; } | undefined; storageOptions?: { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }>; static readonly resultSchema: z.ZodObject<{ markdown: z.ZodString; pages: z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; markdown: z.ZodString; hasCharts: z.ZodBoolean; hasTables: z.ZodBoolean; hasImages: z.ZodBoolean; }, "strip", z.ZodTypeAny, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }>, "many">; metadata: z.ZodObject<{ totalPages: z.ZodNumber; processedPages: z.ZodNumber; hasVisualElements: z.ZodBoolean; processingTime: z.ZodNumber; imageFormat: z.ZodString; imageDpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }>; conversionSummary: z.ZodObject<{ totalCharacters: z.ZodNumber; tablesExtracted: z.ZodNumber; chartsDescribed: z.ZodNumber; imagesDescribed: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodNumber; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime: number; }, { model: string; iterations: number; processingTime: number; }>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; uploaded: z.ZodBoolean; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }>, "many">>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }>; static readonly shortDescription = "Parse Document workflow: convert PDFs/images to markdown using AI vision"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "parse-doc"; constructor(params: ParseDocumentWorkflowParams, context?: BubbleContext); protected performAction(context?: BubbleContext): Promise<ParseDocumentWorkflowResult>; }
1530
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const ParseDocumentWorkflowParamsSchema: z.ZodObject<{ documentData: z.ZodString; documentType: z.ZodDefault<z.ZodEnum<["pdf", "image"]>>; isFileUrl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; conversionOptions: z.ZodDefault<z.ZodObject<{ preserveStructure: z.ZodDefault<z.ZodBoolean>; includeVisualDescriptions: z.ZodDefault<z.ZodBoolean>; extractNumericalData: z.ZodDefault<z.ZodBoolean>; combinePages: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }, { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; storageOptions: z.ZodOptional<z.ZodObject<{ uploadImages: z.ZodDefault<z.ZodBoolean>; bucketName: z.ZodOptional<z.ZodString>; pageImageUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; uploadUrl: z.ZodString; fileName: z.ZodString; }, "strip", z.ZodTypeAny, { fileName: string; uploadUrl: string; pageNumber: number; }, { fileName: string; uploadUrl: string; pageNumber: number; }>, "many">>; userId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }, { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documentData: string; documentType: "image" | "pdf"; isFileUrl: boolean; conversionOptions: { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; storageOptions?: { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }, { documentData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; documentType?: "image" | "pdf" | undefined; isFileUrl?: boolean | undefined; conversionOptions?: { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; } | undefined; storageOptions?: { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }>; declare const ParseDocumentWorkflowResultSchema: z.ZodObject<{ markdown: z.ZodString; pages: z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; markdown: z.ZodString; hasCharts: z.ZodBoolean; hasTables: z.ZodBoolean; hasImages: z.ZodBoolean; }, "strip", z.ZodTypeAny, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }>, "many">; metadata: z.ZodObject<{ totalPages: z.ZodNumber; processedPages: z.ZodNumber; hasVisualElements: z.ZodBoolean; processingTime: z.ZodNumber; imageFormat: z.ZodString; imageDpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }>; conversionSummary: z.ZodObject<{ totalCharacters: z.ZodNumber; tablesExtracted: z.ZodNumber; chartsDescribed: z.ZodNumber; imagesDescribed: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodNumber; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime: number; }, { model: string; iterations: number; processingTime: number; }>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; uploaded: z.ZodBoolean; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }>, "many">>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }>; type ParseDocumentWorkflowParams = z.input<typeof ParseDocumentWorkflowParamsSchema>;; type ParseDocumentWorkflowResult = z.output<typeof ParseDocumentWorkflowResultSchema>; export declare class ParseDocumentWorkflow extends WorkflowBubble<ParseDocumentWorkflowParams, ParseDocumentWorkflowResult> { static readonly type: "workflow"; static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ documentData: z.ZodString; documentType: z.ZodDefault<z.ZodEnum<["pdf", "image"]>>; isFileUrl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; conversionOptions: z.ZodDefault<z.ZodObject<{ preserveStructure: z.ZodDefault<z.ZodBoolean>; includeVisualDescriptions: z.ZodDefault<z.ZodBoolean>; extractNumericalData: z.ZodDefault<z.ZodBoolean>; combinePages: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }, { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; }>>; imageOptions: z.ZodDefault<z.ZodObject<{ format: z.ZodDefault<z.ZodEnum<["png", "jpeg"]>>; quality: z.ZodDefault<z.ZodNumber>; dpi: z.ZodDefault<z.ZodNumber>; pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>; }, "strip", z.ZodTypeAny, { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }, { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; }>>; aiOptions: z.ZodDefault<z.ZodObject<{ model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; temperature: z.ZodDefault<z.ZodNumber>; maxTokens: z.ZodDefault<z.ZodNumber>; jsonMode: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }, { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; }>>; storageOptions: z.ZodOptional<z.ZodObject<{ uploadImages: z.ZodDefault<z.ZodBoolean>; bucketName: z.ZodOptional<z.ZodString>; pageImageUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; uploadUrl: z.ZodString; fileName: z.ZodString; }, "strip", z.ZodTypeAny, { fileName: string; uploadUrl: string; pageNumber: number; }, { fileName: string; uploadUrl: string; pageNumber: number; }>, "many">>; userId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }, { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; }>>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { imageOptions: { format: "png" | "jpeg"; quality: number; dpi: number; pages?: number[] | undefined; }; aiOptions: { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; temperature: number; maxTokens: number; jsonMode: boolean; }; documentData: string; documentType: "image" | "pdf"; isFileUrl: boolean; conversionOptions: { preserveStructure: boolean; includeVisualDescriptions: boolean; extractNumericalData: boolean; combinePages: boolean; }; credentials?: Partial<Record<CredentialType, string>> | undefined; storageOptions?: { uploadImages: boolean; bucketName?: string | undefined; userId?: string | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }, { documentData: string; credentials?: Partial<Record<CredentialType, string>> | undefined; imageOptions?: { format?: "png" | "jpeg" | undefined; quality?: number | undefined; dpi?: number | undefined; pages?: number[] | undefined; } | undefined; aiOptions?: { model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; temperature?: number | undefined; maxTokens?: number | undefined; jsonMode?: boolean | undefined; } | undefined; documentType?: "image" | "pdf" | undefined; isFileUrl?: boolean | undefined; conversionOptions?: { preserveStructure?: boolean | undefined; includeVisualDescriptions?: boolean | undefined; extractNumericalData?: boolean | undefined; combinePages?: boolean | undefined; } | undefined; storageOptions?: { bucketName?: string | undefined; userId?: string | undefined; uploadImages?: boolean | undefined; pageImageUrls?: { fileName: string; uploadUrl: string; pageNumber: number; }[] | undefined; } | undefined; }>; static readonly resultSchema: z.ZodObject<{ markdown: z.ZodString; pages: z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; markdown: z.ZodString; hasCharts: z.ZodBoolean; hasTables: z.ZodBoolean; hasImages: z.ZodBoolean; }, "strip", z.ZodTypeAny, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }, { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }>, "many">; metadata: z.ZodObject<{ totalPages: z.ZodNumber; processedPages: z.ZodNumber; hasVisualElements: z.ZodBoolean; processingTime: z.ZodNumber; imageFormat: z.ZodString; imageDpi: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }, { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }>; conversionSummary: z.ZodObject<{ totalCharacters: z.ZodNumber; tablesExtracted: z.ZodNumber; chartsDescribed: z.ZodNumber; imagesDescribed: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }, { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }>; aiAnalysis: z.ZodObject<{ model: z.ZodString; iterations: z.ZodNumber; processingTime: z.ZodNumber; }, "strip", z.ZodTypeAny, { model: string; iterations: number; processingTime: number; }, { model: string; iterations: number; processingTime: number; }>; uploadedImages: z.ZodOptional<z.ZodArray<z.ZodObject<{ pageNumber: z.ZodNumber; fileName: z.ZodString; fileUrl: z.ZodOptional<z.ZodString>; uploaded: z.ZodBoolean; }, "strip", z.ZodTypeAny, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }, { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }>, "many">>; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }, { success: boolean; error: string; metadata: { totalPages: number; processingTime: number; processedPages: number; hasVisualElements: boolean; imageFormat: string; imageDpi: number; }; pages: { pageNumber: number; markdown: string; hasCharts: boolean; hasTables: boolean; hasImages: boolean; }[]; markdown: string; aiAnalysis: { model: string; iterations: number; processingTime: number; }; conversionSummary: { totalCharacters: number; tablesExtracted: number; chartsDescribed: number; imagesDescribed: number; }; uploadedImages?: { fileName: string; pageNumber: number; uploaded: boolean; fileUrl?: string | undefined; }[] | undefined; }>; static readonly shortDescription = "Parse Document workflow: convert PDFs/images to markdown using AI vision"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "parse-doc"; constructor(params: ParseDocumentWorkflowParams, context?: BubbleContext); protected performAction(context?: BubbleContext): Promise<ParseDocumentWorkflowResult>; }
1531
1531
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
1532
1532
  export interface LangGraphTool { name: string; description: string; schema: z.ZodSchema; func<TResult extends BubbleOperationResult = BubbleOperationResult>(params: unknown): Promise<BubbleResult<TResult>>; }
1533
1533
  export declare abstract class ToolBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IToolBubble<TResult> { readonly type: "tool"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); static toolAgent(credentials?: Partial<Record<CredentialType, string>>, config?: Record<string, unknown>, context?: BubbleContext): LangGraphTool; }
@@ -1792,7 +1792,7 @@ export interface IToolBubble<TResult extends BubbleOperationResult = BubbleOpera
1792
1792
  export interface IUIBubble extends IBubble { readonly type: 'ui'; template: string; }
1793
1793
  export interface IInfraBubble extends IBubble { readonly type: 'infra'; provider: 'aws' | 'gcp' | 'supabase'; resourceType: string; }
1794
1794
  export type BubbleFlowOperationResult = unknown; export interface BubbleContext { logger?: BubbleLogger; variableId?: number; invocationCallSiteKey?: string; dependencyGraph?: DependencyGraphNode; currentUniqueId?: string; __uniqueIdCounters__?: Record<string, number>; executionMeta?: ExecutionMeta; [key: string]: unknown; }
1795
- export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const ResearchAgentToolParamsSchema: z.ZodObject<{ task: z.ZodString; expectedResultSchema: z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; maxTokens: z.ZodOptional<z.ZodDefault<z.ZodNumber>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; maxIterations: number; task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; maxTokens?: number | undefined; }, { task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; maxTokens?: number | undefined; maxIterations?: number | undefined; }>; declare const ResearchAgentToolResultSchema: z.ZodObject<{ result: z.ZodAny; summary: z.ZodString; sourcesUsed: z.ZodArray<z.ZodString, "many">; iterationsUsed: z.ZodNumber; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }>; type ResearchAgentToolParams = z.output<typeof ResearchAgentToolParamsSchema>; type ResearchAgentToolResult = z.output<typeof ResearchAgentToolResultSchema>; type ResearchAgentToolParamsInput = z.input<typeof ResearchAgentToolParamsSchema>;; export declare class ResearchAgentTool extends ToolBubble<ResearchAgentToolParams, ResearchAgentToolResult> { static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ task: z.ZodString; expectedResultSchema: z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; maxTokens: z.ZodOptional<z.ZodDefault<z.ZodNumber>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; maxIterations: number; task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; maxTokens?: number | undefined; }, { task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; maxTokens?: number | undefined; maxIterations?: number | undefined; }>; static readonly resultSchema: z.ZodObject<{ result: z.ZodAny; summary: z.ZodString; sourcesUsed: z.ZodArray<z.ZodString, "many">; iterationsUsed: z.ZodNumber; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }>; static readonly shortDescription = "AI-powered research agent that searches and scrapes the internet to gather structured information"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "research"; static readonly type = "tool"; constructor(params?: ResearchAgentToolParamsInput, context?: BubbleContext); performAction(context?: BubbleContext): Promise<ResearchAgentToolResult>; getExpectedResultSchema(): string; private buildResearchPrompt; private buildSystemPrompt; private extractSourcesFromToolCalls; private generateResearchSummary; private repairJsonWithAgent; private unwrapSchemaStyleResponse; }
1795
+ export type ServiceBubbleParams<T = unknown> = T & { credentials?: CredentialOptions; retries?: number; }; declare const ResearchAgentToolParamsSchema: z.ZodObject<{ task: z.ZodString; expectedResultSchema: z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; maxTokens: z.ZodOptional<z.ZodDefault<z.ZodNumber>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; maxIterations: number; task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; maxTokens?: number | undefined; }, { task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; maxTokens?: number | undefined; maxIterations?: number | undefined; }>; declare const ResearchAgentToolResultSchema: z.ZodObject<{ result: z.ZodAny; summary: z.ZodString; sourcesUsed: z.ZodArray<z.ZodString, "many">; iterationsUsed: z.ZodNumber; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }>; type ResearchAgentToolParams = z.output<typeof ResearchAgentToolParamsSchema>; type ResearchAgentToolResult = z.output<typeof ResearchAgentToolResultSchema>; type ResearchAgentToolParamsInput = z.input<typeof ResearchAgentToolParamsSchema>;; export declare class ResearchAgentTool extends ToolBubble<ResearchAgentToolParams, ResearchAgentToolResult> { static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ task: z.ZodString; expectedResultSchema: z.ZodUnion<[z.ZodType<z.ZodTypeAny, z.ZodTypeDef, z.ZodTypeAny>, z.ZodString]>; model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-5.1", "openai/gpt-5.2", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "google/gemini-3-pro-preview", "google/gemini-3-pro-image-preview", "google/gemini-3-flash-preview", "google/gemini-3.1-pro-preview", "anthropic/claude-sonnet-4-5", "anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "anthropic/claude-haiku-4-5", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6", "openrouter/z-ai/glm-4.7", "openrouter/anthropic/claude-sonnet-4.5", "openrouter/anthropic/claude-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "openrouter/google/gemini-3-pro-preview", "openrouter/morph/morph-v3-large", "openrouter/openai/gpt-oss-120b", "openrouter/openai/o3-deep-research", "openrouter/openai/o4-mini-deep-research"]>>; maxTokens: z.ZodOptional<z.ZodDefault<z.ZodNumber>>; maxIterations: z.ZodDefault<z.ZodNumber>; credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>; }, "strip", z.ZodTypeAny, { model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research"; maxIterations: number; task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; maxTokens?: number | undefined; }, { task: string; expectedResultSchema: string | z.ZodTypeAny; credentials?: Partial<Record<CredentialType, string>> | undefined; model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "google/gemini-3.1-pro-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined; maxTokens?: number | undefined; maxIterations?: number | undefined; }>; static readonly resultSchema: z.ZodObject<{ result: z.ZodAny; summary: z.ZodString; sourcesUsed: z.ZodArray<z.ZodString, "many">; iterationsUsed: z.ZodNumber; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }, { success: boolean; error: string; summary: string; sourcesUsed: string[]; iterationsUsed: number; result?: any; }>; static readonly shortDescription = "AI-powered research agent that searches and scrapes the internet to gather structured information"; static readonly longDescription = "See bubble documentation for details"; static readonly alias = "research"; static readonly type = "tool"; constructor(params?: ResearchAgentToolParamsInput, context?: BubbleContext); performAction(context?: BubbleContext): Promise<ResearchAgentToolResult>; getExpectedResultSchema(): string; private buildResearchPrompt; private buildSystemPrompt; private extractSourcesFromToolCalls; private generateResearchSummary; private repairJsonWithAgent; private unwrapSchemaStyleResponse; }
1796
1796
  export {}; export declare abstract class BaseBubble<TParams = unknown, TResult extends BubbleOperationResult = BubbleOperationResult> implements IBubble<TResult> { readonly name: string; readonly schema: z.ZodObject<z.ZodRawShape>; readonly resultSchema: z.ZodObject<z.ZodRawShape>; readonly shortDescription: string; readonly longDescription: string; readonly alias?: string; abstract readonly type: 'service' | 'workflow' | 'tool' | 'ui' | 'infra'; protected readonly params: TParams; protected context?: BubbleContext; previousResult: BubbleResult<BubbleOperationResult> | undefined; protected readonly instanceId?: string; constructor(params: unknown, context?: BubbleContext, instanceId?: string); private computeChildContext; saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void; clearSavedResult(): void; toJSON(): Record<string, unknown>; action(): Promise<BubbleResult<TResult>>; generateMockResult(): BubbleResult<TResult>; generateMockResultWithSeed(seed: number): BubbleResult<TResult>; protected abstract performAction(context?: BubbleContext): Promise<TResult>; }
1797
1797
  export interface LangGraphTool { name: string; description: string; schema: z.ZodSchema; func<TResult extends BubbleOperationResult = BubbleOperationResult>(params: unknown): Promise<BubbleResult<TResult>>; }
1798
1798
  export declare abstract class ToolBubble<TParams extends ServiceBubbleParams = ServiceBubbleParams, TResult extends BubbleOperationResult = BubbleOperationResult> extends BaseBubble<TParams, TResult> implements IToolBubble<TResult> { readonly type: "tool"; constructor(params: unknown, context?: BubbleContext, instanceId?: string); static toolAgent(credentials?: Partial<Record<CredentialType, string>>, config?: Record<string, unknown>, context?: BubbleContext): LangGraphTool; }