/**
 * IntentExtractor — Intake Layer
 *
 * Pure functions: extract intent signals from user query + active file.
 * Builds multi-query set, infers language/module/scenario for search routing.
 *
 * @module service/task/IntentExtractor
 */
export type SearchScenario = 'lint' | 'generate' | 'search' | 'learning';
export interface ExtractedIntent {
    /** Multi-query set: Q1 raw + Q2 tech terms + Q3 file context */
    queries: string[];
    /** Cross-language synonym queries (run in keyword mode to bypass semantic normalization) */
    keywordQueries: string[];
    /** Inferred language from activeFile or args */
    language: string | null;
    /** Inferred module path from activeFile */
    module: string | null;
    /** Search scenario for MultiSignalRanker routing */
    scenario: SearchScenario;
    /** Original inputs */
    raw: {
        userQuery: string;
        activeFile?: string;
        language?: string;
    };
}
export interface TechTermOptions {
    /** Project-specific class prefixes, e.g. ['BD', 'BBA', 'KS'] */
    projectPrefixes?: string[];
    /** Language/platform common prefixes, e.g. ObjC: ['UI', 'NS', 'CA', 'AV'] */
    platformPrefixes?: string[];
}
/**
 * Extract intent signals from user query and active file.
 * Pure function — no side effects, no DI.
 */
export declare function extract(userQuery: string, activeFile?: string, language?: string, termOpts?: TechTermOptions): ExtractedIntent;
/**
 * Build multi-query set from user query + active file.
 * Q1: raw query, Q2: extracted tech terms, Q3: file context, Q4: synonym focus.
 * Q1 is enriched with cross-language synonyms to bridge EN↔CJK matching.
 * Q4 (long queries only): synonym expansion as a separate focused query
 * to prevent BM25 dilution in verbose natural language inputs.
 */
export declare function buildQueries(userQuery: string, activeFile?: string, termOpts?: TechTermOptions): string[];
/**
 * Build keyword-mode queries for cross-language synonym matching.
 * Uses keyword mode to preserve raw FWS scores without CoarseRanker semantic normalization.
 */
export declare function buildKeywordQueries(userQuery: string): string[];
/**
 * Extract tech terms from query using universal patterns + dynamic project prefixes.
 */
export declare function extractTechTerms(query: string, opts?: TechTermOptions): string[];
/**
 * Infer file context string from file path for search augmentation.
 * Returns module path + class name, e.g. "Services/Network BDNetworkManager"
 */
export declare function inferFileContext(filePath: string): string | null;
/**
 * Infer language from file extension.
 */
export declare function inferLanguage(filePath: string): string | null;
/**
 * Classify search scenario from user query (lightweight rule-based).
 */
export declare function classifyScenario(userQuery: string): SearchScenario;
