import type { SpecScope, SpecTarget, SpecType } from './common/index.js';
export interface SpecGenerationRequest {
    title: string;
    description: string;
    type: SpecType;
    scope: SpecScope;
    target: SpecTarget;
    acFormat?: 'checkbox' | 'bdd';
    projectContext?: {
        language?: string;
        framework?: string;
        architecture?: string;
    };
}
export interface SpecGenerationResult {
    specBody: string;
    technicalSection: string;
    generatedWithModel: string;
    generatedAt: string;
    qualityWarnings: string[];
    fallbackReason?: string;
}
export interface SpecContentGenerator {
    generate(request: SpecGenerationRequest): Promise<SpecGenerationResult>;
}
export interface SpecQualityValidation {
    passed: boolean;
    warnings: string[];
}
export interface SpecGeneratorMessagesClient {
    create(body: {
        model: string;
        max_tokens: number;
        temperature: number;
        system: string;
        messages: {
            role: 'user';
            content: string;
        }[];
    }, options?: {
        signal?: AbortSignal;
    }): Promise<{
        content: {
            type: string;
            text?: string;
        }[];
    }>;
}
export interface OpusGeneratorDeps {
    apiKey: string;
    model?: string;
    timeoutMs?: number;
    client?: SpecGeneratorMessagesClient;
    fallback?: SpecContentGenerator;
    validator?: {
        validate(result: SpecGenerationResult): SpecQualityValidation;
    };
}
export interface ApiKeyConfig {
    anthropic?: {
        apiKey?: string;
    };
}
//# sourceMappingURL=spec-generator.d.ts.map