/** Shared vocabulary for advisory retrieval. Inferences never become business facts. */ export type FitProfile = { tasks: string[]; expressions: string[]; contexts: string[]; contributions: string[]; contextBasis?: string; interpretation?: { assetMinimum: string; scope: string; missingDependencies: string[]; }; }; export declare const EXPRESSION_ALIASES: Record; export declare function expressionSignals(request: string): { requested: string; families: string[]; uncertainty: string | null; }; export declare function normalizeTasks(tasks: string[], precise?: boolean): string[]; export declare function businessContexts(text: string): string[]; export type FitSignals = { known: string[]; absent: string[]; theme?: string; visitorTasks?: string[]; contexts?: string[]; expression?: ReturnType; roles?: string[]; }; export declare function fitScore(profile: FitProfile, fitSignals: string[], signals: FitSignals, precise?: boolean): { score: number; components: { task: number; expression: number; context: number; content: number; generic: number; }; reasons: string[]; supported: boolean; }; export declare function essentialAssetGap(minimum: string, signals: FitSignals): "" | "actual product UI absent" | "essential approved image absent" | "multiple approved images absent"; /** Complementarity can break close substantive scores, never rescue ineligible material. */ export declare function complementaryFit(pool: T[], limit: number, tie: (id: string) => string, precise?: boolean): T[];