/**
 * Screen Executor - Unified screen generation using CommandExecutor base
 *
 * Merges functionality from screen-composer.ts and generate-screen.ts
 * Provides a single, consistent way to generate full React screens.
 */
import { CommandExecutor } from "../core/command-executor.js";
import type { LLMContext } from "../core/llm-client.js";
import { type AllSupportedModels } from "../core/provider-and-models.js";
export interface ScreenInput {
    /** User's description of the screen to generate */
    prompt: string;
    /** Optional TypeScript interface schema for the screen's data */
    schema?: string;
    /** Optional model override */
    model?: AllSupportedModels;
    /** Optional max tokens override */
    maxTokens?: number;
}
export interface ScreenOutput {
    /** Generated screen code */
    code: string;
    /** Plan that was used to generate the screen */
    plan: string;
    /** Components that were selected for the screen */
    componentNames: string[];
    /** Schema that was used (if provided) */
    schema?: string;
}
export declare class ScreenExecutor extends CommandExecutor<ScreenInput, ScreenOutput> {
    constructor();
    protected validateInput(input: ScreenInput): void;
    protected prepareContext(input: ScreenInput): Promise<LLMContext>;
    protected processResult(rawResult: string, input: ScreenInput): Promise<ScreenOutput>;
    protected getCacheKey(input: ScreenInput): string;
    private generatePlan;
    /**
     * Parse JSON from LLM or heuristically recover component names
     */
    private extractPlanFromResponse;
    /**
     * Load verbose docs for only the selected components
     */
    private loadSelectedComponentInfo;
    /**
     * Build final generation context using the plan + selected component docs
     */
    private buildContextWithPlan;
}
//# sourceMappingURL=screen-executor.d.ts.map