import type { Artifact, DesignSessionState } from "./types/index.js";
export interface SpecRequest {
    sessionState: DesignSessionState;
    title: string;
    type?: "technical" | "functional" | "api" | "architecture" | "implementation";
    includeMetrics?: boolean;
    includeExamples?: boolean;
    includeDiagrams?: boolean;
    format?: "markdown" | "yaml" | "json";
    metadata?: Record<string, unknown>;
}
export interface SpecificationResult {
    artifact: Artifact;
    content: string;
    sections: SpecSection[];
    metrics: SpecMetric[];
    diagrams: string[];
    recommendations: string[];
}
export interface SpecSection {
    id: string;
    title: string;
    content: string;
    level: number;
    completeness: number;
}
export interface SpecMetric {
    name: string;
    value: string;
    target: string;
    unit: string;
    priority: "high" | "medium" | "low";
}
declare class SpecGeneratorImpl {
    private specCounter;
    initialize(): Promise<void>;
    generateSpecification(request: SpecRequest | (Omit<Partial<SpecRequest>, "sessionState"> & {
        sessionState: DesignSessionState;
    })): Promise<SpecificationResult>;
    private generateSpecSections;
    private generateSectionContent;
    private generateTypeSpecificSections;
    private generateSpecMetrics;
    private generateDiagramReferences;
    private generateMarkdownSpec;
    private generateYAMLSpec;
    private generateJSONSpec;
    private generateAPIEndpointsSection;
    private generateDataModelsSection;
    private generateComponentsSection;
    private generateInterfacesSection;
    private generateImplementationPlanSection;
    private generateTestingStrategySection;
    private generateRequirementsSection;
    private generateConstraintsSection;
    private generateExamplesForPhase;
    private getQualityAttribute;
    private generateQualityAttributesSection;
    private generateAPIComponentsSection;
    private generateAPIInterfacesSection;
    private generateAuthenticationSection;
    private generateErrorHandlingSection;
    private generateDeploymentArchitectureSection;
    private generateDataArchitectureSection;
    private generateDeploymentStrategySection;
    private generatePerformanceConsiderationsSection;
    private generateSpecRecommendations;
}
export declare const specGenerator: SpecGeneratorImpl;
export declare const IMPLEMENTATION_STATUS: "IMPLEMENTED";
export {};
//# sourceMappingURL=spec-generator.d.ts.map