/**
 * SIMPLE BUBBLEFLOW GENERATOR WORKFLOW
 *
 * A simplified BubbleFlow generator that uses AI agent with tools to generate
 * and validate BubbleFlow code from natural language prompts.
 *
 * Much simpler than the complex workflow - just AI + validation tool!
 */
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';
import { type StreamingCallback } from '../service-bubble/ai-agent.js';
/**
 * Parameters schema for the simple BubbleFlow generator
 */
declare const BubbleFlowGeneratorParamsSchema: z.ZodObject<{
    prompt: z.ZodString;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    prompt: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    prompt: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>;
/**
 * Result schema
 */
declare const BubbleFlowGeneratorResultSchema: z.ZodObject<{
    generatedCode: z.ZodString;
    isValid: z.ZodBoolean;
    success: z.ZodBoolean;
    error: z.ZodString;
    toolCalls: z.ZodArray<z.ZodAny, "many">;
    summary: z.ZodDefault<z.ZodString>;
    inputsSchema: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    success: boolean;
    error: string;
    toolCalls: any[];
    summary: string;
    generatedCode: string;
    isValid: boolean;
    inputsSchema: string;
}, {
    success: boolean;
    error: string;
    toolCalls: any[];
    generatedCode: string;
    isValid: boolean;
    summary?: string | undefined;
    inputsSchema?: string | undefined;
}>;
type BubbleFlowGeneratorParams = z.output<typeof BubbleFlowGeneratorParamsSchema>;
type BubbleFlowGeneratorResult = z.output<typeof BubbleFlowGeneratorResultSchema>;
/**
 * Simple BubbleFlow Generator using AI agent with tools
 */
export declare class BubbleFlowGeneratorWorkflow extends WorkflowBubble<BubbleFlowGeneratorParams, BubbleFlowGeneratorResult> {
    static readonly type: "workflow";
    static readonly bubbleName = "bubbleflow-generator";
    static readonly schema: z.ZodObject<{
        prompt: z.ZodString;
        credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        prompt: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        prompt: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>;
    static readonly resultSchema: z.ZodObject<{
        generatedCode: z.ZodString;
        isValid: z.ZodBoolean;
        success: z.ZodBoolean;
        error: z.ZodString;
        toolCalls: z.ZodArray<z.ZodAny, "many">;
        summary: z.ZodDefault<z.ZodString>;
        inputsSchema: z.ZodDefault<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        success: boolean;
        error: string;
        toolCalls: any[];
        summary: string;
        generatedCode: string;
        isValid: boolean;
        inputsSchema: string;
    }, {
        success: boolean;
        error: string;
        toolCalls: any[];
        generatedCode: string;
        isValid: boolean;
        summary?: string | undefined;
        inputsSchema?: string | undefined;
    }>;
    static readonly shortDescription = "Generate BubbleFlow code from natural language";
    static readonly longDescription = "\n    Simple BubbleFlow generator that uses AI with validation tools.\n    \n    Just provide a natural language prompt describing what you want your BubbleFlow to do,\n    and it will generate complete TypeScript code with proper validation.\n    \n    Example prompts:\n    - \"Create a flow that queries my database and sends results to Slack\"\n    - \"Build a workflow that processes user data with AI and stores it\"\n    - \"Make a flow that analyzes text and generates a summary\"\n  ";
    static readonly alias = "generate-flow";
    private bubbleFactory;
    constructor(params: z.input<typeof BubbleFlowGeneratorParamsSchema>, context?: BubbleContext);
    private runValidationAgent;
    private runSummarizeAgent;
    private createSystemPrompt;
    private createStreamingSystemPrompt;
    protected performAction(context?: BubbleContext): Promise<BubbleFlowGeneratorResult>;
    /**
     * Execute the workflow with streaming support for real-time code generation feedback
     */
    actionWithStreaming(streamingCallback: StreamingCallback, context?: BubbleContext): Promise<BubbleFlowGeneratorResult>;
}
export {};
//# sourceMappingURL=bubbleflow-generator.workflow.d.ts.map