export type EvidenceGateTransition = 'approved' | 'implementing' | 'done';
export interface DiscoveryEvidence {
    version: 1;
    rules: string[];
    examples: {
        rule: string;
        example: string;
    }[];
    openQuestions: {
        question: string;
        status: 'open' | 'resolved' | 'out_of_scope';
        resolution?: string;
    }[];
    outOfScope: string[];
    glossary: {
        term: string;
        meaning: string;
    }[];
}
export interface TaskPlanEvidence {
    version: 1;
    tasks: {
        id: string;
        title: string;
        acceptanceCriteria: string[];
        status: 'pending' | 'doing' | 'done';
    }[];
}
export interface TraceabilityMatrixEvidence {
    version: 1;
    rows: {
        acceptanceCriterion: string;
        scenario?: string;
        testEvidence?: string[];
        contractEvidence?: string[];
        manualEvidence?: string;
        changedFiles: string[];
        validationEvidence?: string;
        reviewerEvidence?: string;
    }[];
}
export interface ContractValidationEvidence {
    version: 1;
    kind: 'api' | 'graphql' | 'event' | 'ui' | 'mcp';
    passed: boolean;
    reportPath?: string;
    summary?: string;
}
export interface EvidenceArtifacts {
    discovery?: DiscoveryEvidence;
    taskPlan?: TaskPlanEvidence;
    traceabilityMatrix?: TraceabilityMatrixEvidence;
    contractValidations: ContractValidationEvidence[];
    invalidArtifacts: string[];
}
export interface EvidenceGateIssue {
    code: 'discovery_missing' | 'discovery_unresolved_questions' | 'task_plan_missing' | 'task_plan_uncovered_criteria' | 'traceability_missing' | 'traceability_uncovered_criteria' | 'traceability_incomplete_rows' | 'contract_validation_missing' | 'contract_validation_failed' | 'done_drift_uncovered_criteria' | 'done_drift_stale_evidence' | 'done_drift_unapproved_scope' | 'evidence_artifact_invalid';
    message: string;
}
export interface EvidenceGateResult {
    passed: boolean;
    issues: EvidenceGateIssue[];
    requiredContractKinds: ContractValidationEvidence['kind'][];
}
//# sourceMappingURL=evidence-gates.d.ts.map