/**
 * Resolve the directory where `npm install` should run so the installed
 * package ends up reachable by `await import(pkg)` from inside this module.
 *
 * Without a `cwd`, `execFileSync('npm', ['install', ...])` operates on
 * `process.cwd()` — when the user runs codegraph against a repo that is *not*
 * the directory where codegraph itself is installed, npm installs into the
 * wrong `node_modules`, the dynamic import still fails, and the user gets
 * `ENGINE_UNAVAILABLE: ... installed but failed to load`.
 *
 * Pin cwd to the directory that contains @optave/codegraph's `node_modules`
 * so the install lands where Node's resolution algorithm will find it.
 *
 * @internal Exported for unit tests; not part of the public barrel.
 */
export declare function resolveNpmInstallCwd(): string | undefined;
export interface ModelConfig {
    name: string;
    dim: number;
    contextWindow: number;
    desc: string;
    quantized: boolean;
    /** Pooling strategy passed to the transformers pipeline. Defaults to 'mean'. */
    pooling?: 'mean' | 'cls';
}
export declare const MODELS: Record<string, ModelConfig>;
export declare const EMBEDDING_STRATEGIES: readonly string[];
export declare const DEFAULT_MODEL: string;
/** @internal Used by generator.js — not part of the public barrel. */
export declare function getModelConfig(modelKey?: string): ModelConfig;
/**
 * Attempt to install a missing package.
 * In TTY environments, prompts the user for confirmation first.
 * In non-TTY environments (CI, piped stdin), installs automatically with a log message.
 * Returns true if the package was installed, false otherwise.
 * @internal Not part of the public barrel.
 */
export declare function promptInstall(packageName: string): Promise<boolean>;
/**
 * Lazy-load @huggingface/transformers.
 * If the package is missing, prompts the user to install it interactively.
 * In non-TTY environments, attempts automatic installation.
 * @internal Not part of the public barrel.
 */
export declare function loadTransformers(): Promise<unknown>;
/**
 * Dispose the current ONNX session and free memory.
 * Safe to call when no model is loaded (no-op).
 */
export declare function disposeModel(): Promise<void>;
/**
 * Generate embeddings for an array of texts.
 */
export declare function embed(texts: string[], modelKey?: string): Promise<{
    vectors: Float32Array[];
    dim: number;
}>;
//# sourceMappingURL=models.d.ts.map