/** Classification of a requirement or spec relative to the defined project scope. */
export type ScopeClassification = 'in_scope' | 'backlog' | 'out_of_project';
/** Severity level of a detected contradiction between specs. */
export type ConflictSeverity = 'blocker' | 'warning' | 'info';
/** Operation for the manage_scope tool. */
export type ManageScopeOperation = 'view' | 'add_to_backlog' | 'propose_change' | 'list_backlog';
/** The project scope definition — platforms, users, and the core problem. */
export interface ScopeDefinition {
    /** Target platforms (e.g., 'ios', 'android', 'web'). */
    platforms: string[];
    /** Target user types (e.g., 'end-user', 'admin', 'developer'). */
    targetUsers: string[];
    /** The primary problem the project solves. */
    primaryProblem: string;
    /** ISO timestamp when this scope was defined. */
    definedAt: string;
    /** Change history for audit trail. */
    changeHistory?: ScopeDecision[];
}
/** An item deferred to the backlog instead of the current project scope. */
export interface BacklogItem {
    /** Unique identifier for the backlog item. */
    id: string;
    /** Human-readable description of the idea or requirement. */
    description: string;
    /** Associated spec ID if one exists. */
    specId?: string;
    /** ISO timestamp when the item was added. */
    dateAdded: string;
    /** Why this was not included in the current scope. */
    exclusionReason: string;
}
/** A formal scope change decision with audit trail. */
export interface ScopeDecision {
    /** Type of change: expanding, narrowing, or removing from scope. */
    type: 'change' | 'add' | 'remove';
    /** Business reason for the change. */
    reason: string;
    /** ISO timestamp of the decision. */
    date: string;
    /** Who approved the change. */
    approvedBy: string;
}
/** Result of evaluating a requirement against the current scope. */
export interface ScopeEvaluation {
    /** How the requirement classifies relative to the project scope. */
    classification: ScopeClassification;
    /** Human-readable explanation of the classification. */
    reason: string;
    /** Optional suggested next action (add to backlog, create new project, etc.). */
    suggestion?: string;
}
/** A semantic contradiction detected between two specs. */
export interface Contradiction {
    /** ID of the first spec in the conflict. */
    specA: string;
    /** ID of the second spec in the conflict. */
    specB: string;
    /** Description of the specific contradiction. */
    description: string;
    /** Severity: blocker means technically impossible to implement both. */
    severity: ConflictSeverity;
    /** Recommended resolution action. */
    recommendation: string;
    /** The contradiction pattern that triggered this detection. */
    pattern: string;
}
/** Full contradiction analysis report for a project. */
export interface ConflictReport {
    /** All detected contradictions. */
    contradictions: Contradiction[];
    /** One-sentence summary of the overall conflict state. */
    summary: string;
    /** IDs of specs involved in at least one conflict. */
    specsWithConflicts: string[];
    /** Number of blocker-severity contradictions. */
    blockerCount: number;
    /** Number of warning-severity contradictions. */
    warningCount: number;
}
/** Input for the manage_scope MCP tool. */
export interface ManageScopeInput {
    /** Project ID. */
    projectId: string;
    /** Operation to perform. */
    operation: ManageScopeOperation;
    /** Description of the item to add to the backlog (required for add_to_backlog). */
    itemDescription?: string;
    /** Exclusion reason (required for add_to_backlog). */
    exclusionReason?: string;
    /** Spec ID to associate with the backlog item (optional for add_to_backlog). */
    specId?: string;
    /** New scope definition (required for propose_change). */
    newScope?: Partial<ScopeDefinition>;
    /** Reason for scope change (required for propose_change). */
    changeReason?: string;
    /** Who is approving the change (required for propose_change). */
    approvedBy?: string;
}
/** Input for the detect_contradictions MCP tool. */
export interface DetectContradictionsInput {
    /** Project ID to analyze. */
    projectId: string;
}
/** Input spec for contradiction detection analysis. */
export interface SpecAnalysisInput {
    /** Spec ID. */
    id: string;
    /** Spec title. */
    title: string;
    /** Combined content for analysis (title + HU.md). */
    content: string;
}
/** Internal contradiction pattern definition used by the detector engine. */
export interface ContradictionPatternDef {
    /** Unique pattern name for reporting. */
    name: string;
    /** Keywords indicating side A of the contradiction. */
    sideA: string[];
    /** Keywords indicating side B of the contradiction. */
    sideB: string[];
    /** Severity when both sides co-exist. */
    severity: ConflictSeverity;
    /** Template for the description (uses {specA} and {specB} placeholders). */
    descriptionTemplate: string;
    /** Recommended resolution action. */
    recommendation: string;
}
//# sourceMappingURL=scope.d.ts.map