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 SlackNotifierParamsSchema: z.ZodObject<{ /** * The raw data or content to be formatted for Slack notification */ contentToFormat: z.ZodString; /** * The original user query or context that generated this content */ originalUserQuery: z.ZodOptional; /** * Target Slack channel name (without #) or channel ID */ targetChannel: z.ZodString; /** * Optional custom message title/header for the notification */ messageTitle: z.ZodOptional; /** * Tone and style for the AI formatting (professional, casual, technical, etc.) */ messageStyle: z.ZodDefault>; /** * Whether to include emojis and rich formatting in the message */ includeFormatting: z.ZodDefault; /** * Maximum message length (Slack has limits) */ maxMessageLength: z.ZodDefault; /** * AI model configuration for content formatting */ aiModel: z.ZodOptional>; temperature: z.ZodDefault; maxTokens: z.ZodDefault; }, "strip", z.ZodTypeAny, { model: "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"; temperature: number; maxTokens: number; }, { model?: "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; temperature?: number | undefined; maxTokens?: number | undefined; }>>; /** * Injected credentials from the system */ credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { contentToFormat: string; targetChannel: string; messageStyle: "concise" | "detailed" | "professional" | "casual" | "technical"; includeFormatting: boolean; maxMessageLength: number; credentials?: Partial> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; aiModel?: { model: "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"; temperature: number; maxTokens: number; } | undefined; }, { contentToFormat: string; targetChannel: string; credentials?: Partial> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; messageStyle?: "concise" | "detailed" | "professional" | "casual" | "technical" | undefined; includeFormatting?: boolean | undefined; maxMessageLength?: number | undefined; aiModel?: { model?: "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; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; }>; type SlackNotifierParamsInput = z.input; type SlackNotifierParams = z.output; declare const SlackNotifierResultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; /** * Information about the sent Slack message */ messageInfo: z.ZodOptional; /** * Channel ID where message was sent */ channelId: z.ZodOptional; /** * Channel name where message was sent */ channelName: z.ZodOptional; /** * The formatted message that was sent */ formattedMessage: z.ZodOptional; /** * Message length in characters */ messageLength: z.ZodOptional; }, "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; }>>; /** * AI formatting process information */ formattingInfo: z.ZodOptional; /** * Whether content was truncated due to length limits */ wasTruncated: z.ZodDefault; /** * Original content length before formatting */ originalLength: z.ZodOptional; }, "strip", z.ZodTypeAny, { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; }, { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { error: string; success: boolean; 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; }, { error: string; success: boolean; 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; /** * SlackNotifierWorkflowBubble - Your personal data analyst for Slack communications * * This workflow bubble acts like a seasoned data analyst who transforms raw information * into compelling, actionable Slack messages that your team will actually want to read: * * 1. **Analyzes content** - Spots patterns, key insights, and business implications * 2. **Tells the story** - Converts dry data into engaging narratives with context * 3. **Makes it actionable** - Provides recommendations and next steps * 4. **Delivers naturally** - Uses conversational, human-like communication style * 5. **Handles logistics** - Finds channels and manages message delivery * * Perfect for: * - Sharing analysis results that drive decisions * - Automated insights that feel personally crafted * - Business intelligence updates with personality * - Data discoveries that need immediate attention * - Reports that people actually read and act on */ export declare class SlackNotifierWorkflowBubble extends WorkflowBubble { static readonly bubbleName = "slack-notifier"; static readonly schema: z.ZodObject<{ /** * The raw data or content to be formatted for Slack notification */ contentToFormat: z.ZodString; /** * The original user query or context that generated this content */ originalUserQuery: z.ZodOptional; /** * Target Slack channel name (without #) or channel ID */ targetChannel: z.ZodString; /** * Optional custom message title/header for the notification */ messageTitle: z.ZodOptional; /** * Tone and style for the AI formatting (professional, casual, technical, etc.) */ messageStyle: z.ZodDefault>; /** * Whether to include emojis and rich formatting in the message */ includeFormatting: z.ZodDefault; /** * Maximum message length (Slack has limits) */ maxMessageLength: z.ZodDefault; /** * AI model configuration for content formatting */ aiModel: z.ZodOptional>; temperature: z.ZodDefault; maxTokens: z.ZodDefault; }, "strip", z.ZodTypeAny, { model: "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"; temperature: number; maxTokens: number; }, { model?: "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; temperature?: number | undefined; maxTokens?: number | undefined; }>>; /** * Injected credentials from the system */ credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { contentToFormat: string; targetChannel: string; messageStyle: "concise" | "detailed" | "professional" | "casual" | "technical"; includeFormatting: boolean; maxMessageLength: number; credentials?: Partial> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; aiModel?: { model: "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"; temperature: number; maxTokens: number; } | undefined; }, { contentToFormat: string; targetChannel: string; credentials?: Partial> | undefined; originalUserQuery?: string | undefined; messageTitle?: string | undefined; messageStyle?: "concise" | "detailed" | "professional" | "casual" | "technical" | undefined; includeFormatting?: boolean | undefined; maxMessageLength?: number | undefined; aiModel?: { model?: "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; temperature?: number | undefined; maxTokens?: number | undefined; } | undefined; }>; static readonly resultSchema: z.ZodObject<{ success: z.ZodBoolean; error: z.ZodString; /** * Information about the sent Slack message */ messageInfo: z.ZodOptional; /** * Channel ID where message was sent */ channelId: z.ZodOptional; /** * Channel name where message was sent */ channelName: z.ZodOptional; /** * The formatted message that was sent */ formattedMessage: z.ZodOptional; /** * Message length in characters */ messageLength: z.ZodOptional; }, "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; }>>; /** * AI formatting process information */ formattingInfo: z.ZodOptional; /** * Whether content was truncated due to length limits */ wasTruncated: z.ZodDefault; /** * Original content length before formatting */ originalLength: z.ZodOptional; }, "strip", z.ZodTypeAny, { wasTruncated: boolean; modelUsed?: string | undefined; originalLength?: number | undefined; }, { modelUsed?: string | undefined; wasTruncated?: boolean | undefined; originalLength?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { error: string; success: boolean; 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; }, { error: string; success: boolean; 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; /** * Find the target Slack channel by name or ID */ private findSlackChannel; /** * Format content using AI for better Slack presentation */ private formatContentWithAI; /** * Send the formatted message to Slack */ private sendToSlack; /** * Build the AI formatting prompt based on parameters */ private buildFormattingPrompt; } export {}; //# sourceMappingURL=slack-notifier.workflow.d.ts.map