export interface ProjectContext {
    productSummary: string;
    audience: string[];
    coreProblem: string;
    valuePromise: string;
    workflows: string[];
    positioning: string;
    constraints: string[];
}
export interface NarrativeManifest {
    hook: string;
    tension: string;
    transformation: string;
    trustStrategy: string;
    objectionHandling: string[];
    CTAIntent: string;
}
export interface Section {
    id: string;
    name: string;
    type: string;
    purpose: string;
    contentRequired: string[];
}
export interface SectionManifest {
    sections: Section[];
    layoutIntent: string;
}
export interface ComponentInventory {
    patterns: Array<{
        id: string;
        patternName: string;
        purpose: string;
        usedInSections: string[];
    }>;
}
export interface PrimitiveMapping {
    mappings: Array<{
        patternId: string;
        shadcnComponents: string[];
        radixPrimitives: string[];
        verified: boolean;
    }>;
}
export interface ContentSchema {
    schemas: Array<{
        sectionId: string;
        props: Record<string, {
            type: string;
            description: string;
        }>;
        dataShape: any;
    }>;
}
export interface BaselineCheckResult {
    shadcnInstalled: boolean;
    componentsUiExists: boolean;
    componentsJsonExists: boolean;
    pathAliasConfigured: boolean;
    installedPrimitives: string[];
    missingPrimitives: string[];
}
export interface LandingPageManifest {
    sections: Section[];
    layoutIntent: string;
    componentInventory: string[];
    responsiveRules: string[];
}
export type PipelineStage = "INIT" | "BASELINE_CHECK" | "CONTEXT_GENERATED" | "NARRATIVE_GENERATED" | "SECTION_MANIFEST_GENERATED" | "COMPONENT_INVENTORY_GENERATED" | "PRIMITIVE_MAPPING_GENERATED" | "CONTENT_SCHEMA_GENERATED" | "SKELETON_GENERATED" | "CONTENT_POPULATED" | "SECTION_VALIDATED" | "CLASSNAME_REFINED" | "FINAL_VALIDATED" | "SELF_HEALED";
export interface OrchestratorState {
    stage: PipelineStage;
    baselineCheck?: BaselineCheckResult;
    projectContext?: ProjectContext;
    narrative?: NarrativeManifest;
    sectionManifest?: SectionManifest;
    componentInventory?: ComponentInventory;
    primitiveMapping?: PrimitiveMapping;
    contentSchema?: ContentSchema;
    pageManifest?: LandingPageManifest;
    skeletons?: {
        id: string;
        name: string;
        file: string;
        code: string;
    }[];
    validatedSections?: Set<string>;
    report?: any[];
}
export declare const STAGE_ORDER: Record<PipelineStage, number>;
export declare class LandingPageOrchestrator {
    private projectPath;
    private outputDir;
    private verbose;
    private aiCore;
    state: OrchestratorState;
    constructor(projectPath: string, outputDir: string, verbose?: boolean, fresh?: boolean);
    private loadStateSync;
    private clearStateSync;
    saveState(): Promise<void>;
    isStageCompleted(stage: PipelineStage): boolean;
    private cleanJsonString;
    /**
     * Stage 1: Baseline Check - Verify shadcn/ui installation
     */
    performBaselineCheck(): Promise<BaselineCheckResult>;
    /**
     * Stage 2: Generate Project Context Manifest
     */
    generateProjectContext(): Promise<ProjectContext>;
    /**
     * Stage 2: Generate Narrative Manifest
     */
    generateNarrative(context?: ProjectContext): Promise<NarrativeManifest>;
    /**
     * Stage 4: Generate Section Manifest (sections with semantic intent only)
     */
    generateSectionManifest(narrative?: NarrativeManifest): Promise<SectionManifest>;
    /**
     * Stage 5: Generate Component Inventory (abstract UI patterns, not specific components)
     */
    generateComponentInventory(sectionManifest?: SectionManifest): Promise<ComponentInventory>;
    /**
     * Stage 6: Generate Primitive Mapping (map UI patterns to shadcn components)
     */
    generatePrimitiveMapping(componentInventory?: ComponentInventory): Promise<PrimitiveMapping>;
    /**
     * DEPRECATED: Generate Landing Page Manifest (Old Pipeline)
     *
     * NOTE: This method combines Section Manifest + Component Inventory + Primitive Mapping
     * into a single step. It's kept for backward compatibility but new code should use
     * the split stages: generateSectionManifest → generateComponentInventory → generatePrimitiveMapping
     *
     * WARNING: This method is deprecated and does not update pipeline stage tracking.
     * Use the new split methods for proper stage progression.
     */
    generatePageManifest(narrative?: NarrativeManifest): Promise<LandingPageManifest>;
    /**
     * Stage 8: Component Skeleton Generation (STRUCTURE-ONLY, no content)
     */
    generateComponentSkeletons(sectionManifest?: SectionManifest): Promise<{
        id: string;
        name: string;
        file: string;
        code: string;
    }[]>;
    /**
     * Stage 9: Content Population (fill skeletons with actual content)
     */
    populateContent(skeletons?: {
        id: string;
        name: string;
        file: string;
        code: string;
    }[], narrative?: NarrativeManifest, projectContext?: ProjectContext): Promise<void>;
    /**
     * Stage 10: Section Validation (validate each section independently)
     */
    validateSections(): Promise<void>;
    /**
     * Stage 11: Constrained Design Refinement (measurable improvements only)
     */
    refineComponents(skeletons?: {
        id: string;
        name: string;
        file: string;
        code: string;
    }[], context?: ProjectContext): Promise<void>;
    private findNearestTsconfig;
    /**
     * Stage 12: Final Validation & Incremental Self-Healing
     */
    validateAndHealComponents(): Promise<void>;
    getCompilationSummary(): string;
    /**
     * Advance one stage in the pipeline (NEW 14-stage pipeline)
     */
    advance(): Promise<OrchestratorState>;
    /**
     * Benchmark mode: Generate direct-prompt baseline landing page
     */
    generateDirectPromptBaseline(context?: ProjectContext, narrative?: NarrativeManifest): Promise<void>;
    private safeReadFile;
    private ensureShadcnUiStubs;
    private cleanCodeBlock;
}
//# sourceMappingURL=LandingPageOrchestrator.d.ts.map