import type { SupportedLocale, NoteTag, DocHealthReport, ContextStats } from '../common.js';
export interface ManageContextResult {
    action: string;
    key?: string;
    content?: string;
    notes?: ContextNote[];
    docHealthReport?: DocHealthReport;
    contextStats?: ContextStats;
    message: string;
}
export interface ContextNote {
    key: string;
    createdAt: string;
    expiresAt?: string;
    preview: string;
    tags?: NoteTag[];
    specId?: string;
}
export interface NLIIntentResolution {
    rawInput: string;
    detectedLanguage: string;
    intent: NLIIntent;
    confidence: number;
    ambiguityResolution?: string;
    toolMapping: ToolMapping;
    contextUsed: NLIContext;
}
export interface NLIIntent {
    primary: string;
    modifiers: string[];
    entities: NLIEntity[];
    sentiment: 'directive' | 'question' | 'exploration' | 'correction';
}
export interface NLIEntity {
    type: 'project' | 'spec' | 'file' | 'module' | 'tool' | 'status' | 'framework' | 'language' | 'feature' | 'other';
    value: string;
    resolved: boolean;
    resolvedValue?: string;
}
export interface ToolMapping {
    primaryTool: string;
    toolChain?: string[];
    autoParams: Record<string, unknown>;
    missingParams: MissingParam[];
    suggestedFlow?: string;
}
export interface MissingParam {
    name: string;
    description: string;
    suggestions: string[];
    required: boolean;
}
export interface NLIContext {
    sessionId?: string;
    currentProject?: string;
    activeSpec?: string;
    lastResource?: NLIResourceRef;
    lastSpecs: string[];
    lastTools: string[];
    conversationMemory: string[];
    userPatterns: UserPattern[];
    detectedLanguage?: string;
}
export interface NLIResourceRef {
    type: 'spec' | 'file' | 'module' | 'project';
    id: string;
    label: string;
}
export interface UserPattern {
    phrase: string;
    mappedTool: string;
    mappedEntity?: string;
    frequency: number;
    locale: SupportedLocale;
    lastUsed?: string;
}
export interface DisambiguationOption {
    label: string;
    specId: string;
    reason: string;
}
export interface UserPatternMatch {
    pattern: UserPattern;
    confidence: number;
    source: 'exact' | 'fuzzy' | 'learned';
}
export interface ManageContextInput {
    projectId: string;
    action: 'save' | 'load' | 'list' | 'delete' | 'cleanup' | 'add-note' | 'get-context' | 'doc-health';
    key?: string;
    content?: string;
    ttlDays?: number;
    tags?: NoteTag[];
    specId?: string;
    filterByTag?: NoteTag;
    filterBySpecId?: string;
}
//# sourceMappingURL=nli.d.ts.map