import { z } from 'zod'; import { WorkflowBubble } from '../../types/workflow-bubble-class.js'; import type { BubbleContext } from '../../types/bubble.js'; import { CredentialType } from '@bubblelab/shared-schemas'; declare const SlackDataAssistantParamsSchema: z.ZodObject<{ slackChannel: z.ZodString; slackThreadTs: z.ZodOptional; userQuestion: z.ZodString; userName: z.ZodOptional; name: z.ZodDefault; dataSourceType: z.ZodDefault>; databaseUrl: z.ZodOptional; ignoreSSLErrors: z.ZodDefault; aiModel: z.ZodDefault>; temperature: z.ZodDefault; verbosity: z.ZodDefault>; technicality: z.ZodDefault>; includeQuery: z.ZodDefault; includeExplanation: z.ZodDefault; injectedMetadata: z.ZodOptional>>; tableNotes: z.ZodOptional>; rules: z.ZodOptional>; }, "strip", z.ZodTypeAny, { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; }, { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; }>>; additionalContext: z.ZodOptional; maxQueries: z.ZodDefault; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { name: string; temperature: number; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; dataSourceType: "postgresql" | "mysql" | "sqlite" | "mssql" | "mariadb"; ignoreSSLErrors: boolean; aiModel: "anthropic/claude-haiku-4-5" | "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-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" | "google/gemini-3.1-flash-lite-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | "fireworks/accounts/fireworks/models/kimi-k2p6"; slackChannel: string; userQuestion: string; maxQueries: number; credentials?: Partial> | undefined; additionalContext?: string | undefined; userName?: string | undefined; injectedMetadata?: { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; } | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; }, { slackChannel: string; userQuestion: string; name?: string | undefined; credentials?: Partial> | undefined; temperature?: 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; userName?: string | undefined; dataSourceType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "mariadb" | undefined; ignoreSSLErrors?: boolean | undefined; injectedMetadata?: { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; } | undefined; aiModel?: "anthropic/claude-haiku-4-5" | "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-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" | "google/gemini-3.1-flash-lite-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | "fireworks/accounts/fireworks/models/kimi-k2p6" | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; maxQueries?: number | undefined; }>; declare const SlackDataAssistantResultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; query: z.ZodOptional; queryExplanation: z.ZodOptional; queryResults: z.ZodOptional, "many">>; formattedResponse: z.ZodOptional; slackBlocks: z.ZodOptional>; slackMessageTs: z.ZodOptional; isDataQuestion: z.ZodOptional; metadata: z.ZodOptional; wordCount: z.ZodOptional; }, "strip", z.ZodTypeAny, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { error: string; success: boolean; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; query?: string | undefined; queryExplanation?: string | undefined; queryResults?: Record[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }, { error: string; success: boolean; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; query?: string | undefined; queryExplanation?: string | undefined; queryResults?: Record[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }>; type SlackDataAssistantParams = z.input; type SlackDataAssistantResult = z.output; export declare class SlackDataAssistantWorkflow extends WorkflowBubble { 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; userQuestion: z.ZodString; userName: z.ZodOptional; name: z.ZodDefault; dataSourceType: z.ZodDefault>; databaseUrl: z.ZodOptional; ignoreSSLErrors: z.ZodDefault; aiModel: z.ZodDefault>; temperature: z.ZodDefault; verbosity: z.ZodDefault>; technicality: z.ZodDefault>; includeQuery: z.ZodDefault; includeExplanation: z.ZodDefault; injectedMetadata: z.ZodOptional>>; tableNotes: z.ZodOptional>; rules: z.ZodOptional>; }, "strip", z.ZodTypeAny, { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; }, { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; }>>; additionalContext: z.ZodOptional; maxQueries: z.ZodDefault; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { name: string; temperature: number; verbosity: "1" | "2" | "3" | "4" | "5"; technicality: "1" | "2" | "3" | "4" | "5"; includeQuery: boolean; includeExplanation: boolean; dataSourceType: "postgresql" | "mysql" | "sqlite" | "mssql" | "mariadb"; ignoreSSLErrors: boolean; aiModel: "anthropic/claude-haiku-4-5" | "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-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" | "google/gemini-3.1-flash-lite-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | "fireworks/accounts/fireworks/models/kimi-k2p6"; slackChannel: string; userQuestion: string; maxQueries: number; credentials?: Partial> | undefined; additionalContext?: string | undefined; userName?: string | undefined; injectedMetadata?: { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; } | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; }, { slackChannel: string; userQuestion: string; name?: string | undefined; credentials?: Partial> | undefined; temperature?: 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; userName?: string | undefined; dataSourceType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "mariadb" | undefined; ignoreSSLErrors?: boolean | undefined; injectedMetadata?: { tables?: Record> | undefined; tableNotes?: Record | undefined; rules?: string[] | undefined; } | undefined; aiModel?: "anthropic/claude-haiku-4-5" | "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-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" | "google/gemini-3.1-flash-lite-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | "fireworks/accounts/fireworks/models/kimi-k2p6" | undefined; slackThreadTs?: string | undefined; databaseUrl?: string | undefined; maxQueries?: number | undefined; }>; static readonly resultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; query: z.ZodOptional; queryExplanation: z.ZodOptional; queryResults: z.ZodOptional, "many">>; formattedResponse: z.ZodOptional; slackBlocks: z.ZodOptional>; slackMessageTs: z.ZodOptional; isDataQuestion: z.ZodOptional; metadata: z.ZodOptional; wordCount: z.ZodOptional; }, "strip", z.ZodTypeAny, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }, { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { error: string; success: boolean; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; query?: string | undefined; queryExplanation?: string | undefined; queryResults?: Record[] | undefined; formattedResponse?: string | undefined; slackBlocks?: unknown[] | undefined; slackMessageTs?: string | undefined; isDataQuestion?: boolean | undefined; }, { error: string; success: boolean; metadata?: { executionTime: number; rowCount?: number | undefined; wordCount?: number | undefined; } | undefined; query?: string | undefined; queryExplanation?: string | undefined; queryResults?: Record[] | 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 = "\n A comprehensive workflow that creates an intelligent Slack bot capable of:\n - Receiving questions from Slack mentions\n - Analyzing database schema\n - Generating appropriate SQL queries using AI\n - Executing queries safely (read-only)\n - Formatting results in a user-friendly way\n - Responding in Slack with rich block formatting\n \n Perfect for:\n - Business intelligence chat-bots\n - Data analytics assistants\n - Database query automation\n - Self-service data access\n "; static readonly alias = "slack-data-bot"; constructor(params: SlackDataAssistantParams, context?: BubbleContext); /** * Extract first name from a full name string */ private extractFirstName; /** * Clean bot name by removing common suffixes and formatting */ private cleanBotName; /** * Clean username by converting formats like "john.doe" to "John" */ private cleanUsername; /** * Generate a readable name from a Slack user ID when API calls fail * Converts "U07UTL8MA9Y" to "User07" etc. */ private generateReadableNameFromUserId; protected performAction(): Promise; private aggregateQueryResults; } export {}; //# sourceMappingURL=slack-data-assistant.workflow.d.ts.map