import { PipelineResult } from "../services/PipelineOrchestrator";
import { RegistryDiffReport } from "../services/RegistryDiffEngine";
import { HistoryEntry } from "../services/ExecutionHistory";
import { BrainMutationPreview } from "./TUIBrainService";
export type TUIIntentAction = "explore" | "clarify" | "plan" | "execute" | "verify" | "compile_landing_page" | "heal_runtime_error";
export interface TUIIntent {
    action: TUIIntentAction;
    reason: string;
}
export interface TUIPlanPreview {
    prompt: string;
    mutation: BrainMutationPreview;
    blockers: Array<{
        id: string;
        text: string;
        options?: string[];
    }>;
    nextFeature?: {
        id: string;
        name: string;
        description: string;
    };
    batches: Array<{
        id: string;
        taskCount: number;
        tasks: string[];
    }>;
}
export interface TUIVerificationSummary {
    doctor: {
        score: number;
        grade: string;
        errors: number;
        warnings: number;
    };
    registry: {
        summary: string;
        driftItems: number;
        hasUntrackedFiles: boolean;
        hasOrphanRefs: boolean;
    };
    graph: {
        features: number;
        gaps: number;
    };
    semantics: {
        terms: number;
        conflicts: number;
    };
    needsRepair: boolean;
}
export interface TUIExecutionResult {
    pipeline: PipelineResult;
    verification: TUIVerificationSummary;
}
export declare class ChatFirstController {
    private projectRoot;
    private brain;
    private pendingPlan?;
    constructor(projectRoot?: string);
    getPendingPlan(): TUIPlanPreview | undefined;
    clearPendingPlan(): void;
    routeIntent(input: string): Promise<TUIIntent>;
    explore(input: string): Promise<string[]>;
    plan(input: string): Promise<TUIPlanPreview>;
    commitPlan(plan: TUIPlanPreview): Promise<void>;
    execute(prompt?: string): Promise<TUIExecutionResult>;
    verify(): Promise<TUIVerificationSummary>;
    clarify(input: string): Promise<TUIPlanPreview["blockers"]>;
    recentHistory(limit?: number): Promise<HistoryEntry[]>;
    operationStatus(limit?: number): Promise<HistoryEntry[]>;
    registryDiff(): Promise<RegistryDiffReport>;
    currentBlockers(): Promise<TUIPlanPreview["blockers"]>;
    private buildQuestionDelta;
    private draftFeature;
    private compilePlanPreview;
    private extractBlockers;
    private runDoctorCheck;
    private runRegistryDiff;
    private runGraphValidation;
    private runSemanticValidation;
    private toFeatureName;
    private cleanPromptTitle;
    private slugify;
    private toPascalCase;
    private toCamelCase;
    private getOutputDir;
    healError(errorInput: string): Promise<{
        success: boolean;
        healedFiles: string[];
        explanation?: string;
        error?: string;
    }>;
}
//# sourceMappingURL=ChatFirstController.d.ts.map