import { ProjectConfig, Component, ActionDefinition, RouteDefinition } from "./index";
/**
 * LivingContext: The structured "Living Brain" of a MyContext project.
 * This JSON represents the single source of truth for all agents.
 */
export interface LivingContext {
    metadata: {
        version: string;
        generatedAt: string;
        lastUpdatedAt: string;
        projectConfig: ProjectConfig;
    };
    projectType?: 'fullstack' | 'landing-page' | 'ui-only' | 'basic';
    aestheticPreference?: string;
    prd: {
        title: string;
        problemStatement: string;
        goals: string[];
        nonGoals?: string[];
        targetAudience: string;
        successMetrics: string[];
    };
    features: Array<{
        id: string;
        name: string;
        description: string;
        priority: "high" | "medium" | "low";
        userValue: string;
        acceptanceCriteria: string[];
        dependencies: string[];
        componentIds?: string[];
        actionIds?: string[];
        routeIds?: string[];
        status?: "planned" | "in-progress" | "completed";
    }>;
    flows: Array<{
        id: string;
        name: string;
        description: string;
        steps: string[];
        actors: string[];
        structuredSteps?: Array<{
            stepNumber: number;
            action: string;
            expectedOutcome: string;
            linkedComponentIds?: string[];
        }>;
        linkedFeatureId?: string;
    }>;
    edgeCases: Array<{
        id: string;
        category: string;
        description: string;
        mitigation: string;
    }>;
    specs: {
        architecture: string;
        techStack: {
            frontend: string[];
            backend: string[];
            database: string[];
            other: string[];
        };
        apiEndpoints: Array<{
            path: string;
            method: string;
            description: string;
            authRequired: boolean;
        }>;
        databaseSchema: {
            tables: Array<{
                name: string;
                columns: Array<{
                    name: string;
                    type: string;
                    constraints?: string[];
                }>;
            }>;
        };
    };
    components: Array<Component & {
        path?: string;
        group?: string;
        status: "planned" | "generated" | "verified";
    }>;
    actions: ActionDefinition[];
    routes: RouteDefinition[];
    specifications?: Record<string, SpecState>;
    brain: import("@myycontext/core").Brain;
}
export interface SpecState {
    id: string;
    displayName: string;
    currentPhase: "requirements" | "design" | "tasks" | "execution" | "completed";
    requirements: {
        userStory: string;
        glossary: Array<{
            term: string;
            definition: string;
        }>;
        acceptanceCriteria: Array<{
            id: string;
            pattern: "ubiquitous" | "event-driven" | "state-driven" | "unwanted-event" | "optional" | "complex";
            statement: string;
            rationale?: string;
        }>;
    };
    design: {
        architectureDecisions: Array<{
            id: string;
            decision: string;
            rationale: string;
            alternativesConsidered: string[];
        }>;
        components: Array<{
            id: string;
            name: string;
            description: string;
            filePath?: string;
            props: Array<{
                name: string;
                type: string;
                description: string;
            }>;
            apisUsed?: string[];
        }>;
        correctnessProperties: Array<{
            id: string;
            requirementId: string;
            pattern: "invariant" | "round-trip" | "idempotence" | "metamorphic" | "model-based";
            description: string;
            testFilePath?: string;
        }>;
    };
    tasks: Array<{
        id: string;
        description: string;
        dependencies: string[];
        verificationSteps: string[];
        status: "pending" | "in-progress" | "complete" | "failed";
        logs?: string[];
    }>;
}
//# sourceMappingURL=living-context.d.ts.map