import type { ParadigmReport } from './paradigm.js';
/** Ambiguity level for a tool request. */
export type AmbiguityLevel = 'none' | 'low' | 'medium' | 'critical';
/** Dimensions evaluated during ambiguity scoring. */
export type AmbiguityDimension = 'platform' | 'objective' | 'business-context' | 'stack';
/** Numeric score with severity classification. */
export interface AmbiguityScore {
    /** Composite 0–100 score (0 = crystal clear, 100 = completely vague). */
    score: number;
    level: AmbiguityLevel;
    /** The dimension blocking progress the most. */
    blockingDimension: AmbiguityDimension;
    /** One specific clarification question targeting the blocking dimension. */
    clarificationQuestion: string;
    /** Individual dimension scores. */
    dimensions: Record<AmbiguityDimension, number>;
}
/** Scenario detected by the facilitate tool. */
export type FacilitateScenario = 'new_project' | 'existing_project' | 'concrete_problem';
/** Accumulated state during a facilitate session. */
export interface FacilitateContext {
    scenario: FacilitateScenario;
    description: string;
    /** 0-indexed step (0-2 for new_project, single-step for others). */
    step: number;
    /** Answers collected across steps. */
    collectedInfo: Record<string, string>;
    /** Whether the context is ready to generate artifacts. */
    readyToGenerate: boolean;
}
/** Focus state for a session — what the user/AI is working on. */
export interface FocusState {
    /** Human-readable objective description. */
    objective: string;
    /** The Planu tool most associated with this objective. */
    associatedTool?: string;
    /** ISO timestamp when the focus was set. */
    startedAt: string;
    /** Optional spec ID being worked on. */
    specId?: string;
}
/** Represents a detected drift from the current session focus. */
export interface FocusShift {
    /** The new request that appears off-topic. */
    offTopicRequest: string;
    /** The current objective the user should return to. */
    currentObjective: string;
    /** Message explaining the drift and how to return. */
    redirectMessage: string;
    /** Whether the user can still proceed despite the shift. */
    allowProceed: boolean;
}
/** Expert observation appended after artifact generation. */
export interface ExpertObservation {
    /** Category of observation. */
    type: 'risk' | 'suggestion' | 'metric';
    /** Human-readable observation text. */
    text: string;
    /** Optional action to address the observation. */
    action?: string;
}
/** Input parameters for the facilitate tool. */
export interface FacilitateInput {
    description: string;
    projectId?: string;
    sessionId?: string;
    /** Explicit scenario override — auto-detected if omitted. */
    scenario?: FacilitateScenario;
    /** Cumulative answers from previous steps. */
    collectedInfo?: Record<string, string>;
    /** Step index (0-based). Incremented by the caller. */
    step?: number;
    /** Target tool for ambiguity check (optional). */
    targetTool?: string;
    /** Check focus alignment for a given request. */
    checkFocus?: boolean;
    /** Declare a change of objective. */
    changeFocus?: string;
    /**
     * SPEC-035b: Pre-computed paradigm detection report.
     * When provided, paradigm-aware expert observations are appended to the response.
     */
    paradigmReport?: ParadigmReport;
}
//# sourceMappingURL=facilitator.d.ts.map