/**
 * UltraQA - 5-Cycle Autonomous QA Loop
 * Test/Build/Lint → Fail → Architect Diagnosis → Executor Fix → Repeat
 */
export type QAGoal = 'tests' | 'build' | 'lint' | 'typecheck' | 'custom' | 'all';
export interface QAConfig {
    goals: QAGoal[];
    maxCycles: number;
    maxSameFailure: number;
    customCommand?: string;
    interactive?: boolean;
}
export interface QACycleResult {
    cycle: number;
    goal: QAGoal;
    command: string;
    passed: boolean;
    output: string;
    exitCode: number;
    diagnosis?: string;
    fix?: string;
}
export interface QASession {
    config: QAConfig;
    cycles: QACycleResult[];
    currentCycle: number;
    consecutiveFailures: Map<string, number>;
    status: 'running' | 'passed' | 'failed' | 'max_cycles' | 'env_error' | 'architecture_question';
    evidenceCollected: boolean;
    startTime: Date;
    endTime?: Date;
}
/**
 * Create new QA session
 */
export declare function createQASession(config?: Partial<QAConfig>): QASession;
/**
 * Get command for goal
 */
export declare function getCommandForGoal(goal: QAGoal, customCommand?: string): string;
/**
 * Record cycle result
 */
export declare function recordCycleResult(session: QASession, result: Omit<QACycleResult, 'cycle'>): QASession;
/**
 * Check if session should continue
 */
export declare function shouldContinue(session: QASession): boolean;
/**
 * Generate architect diagnosis prompt
 */
export declare function generateDiagnosisPrompt(result: QACycleResult): string;
/**
 * Generate executor fix prompt
 */
export declare function generateFixPrompt(diagnosis: string, result: QACycleResult): string;
/**
 * 3-Fix Rule: Generate architecture escalation prompt
 * When same failure occurs 3+ times, stop fixing and question architecture
 */
export declare function generateArchitectureEscalationPrompt(session: QASession): string;
/**
 * Evidence Gate: Check if session has verification evidence
 */
export declare function requireEvidence(session: QASession): {
    hasEvidence: boolean;
    message: string;
};
/**
 * Mark evidence as collected for the session
 */
export declare function markEvidenceCollected(session: QASession): void;
/**
 * Format QA session status
 */
export declare function formatQAStatus(session: QASession): string;
/**
 * Parse QA goal from string
 */
export declare function parseQAGoals(input: string): QAGoal[];
/**
 * Create UltraQA workflow description
 */
export declare function describeUltraQAWorkflow(): string;
//# sourceMappingURL=UltraQA.d.ts.map