/**
 * @file `resolveSkillSpector()` — SkillSpector resolution entry point. Tries
 *   each source in order:
 *
 *   1. VFS — smol binary's embedded skillspector (if packed)
 *   2. PATH — `which skillspector` (pipx-installed binaries land here too; the
 *      source field distinguishes `'pipx'` vs `'path'`)
 *   3. DLX-venv — `~/.socket/_dlx/skillspector/<sha>/` with the pinned SHA Returns
 *      `undefined` when all enabled sources miss. Memoized per
 *      sha+cacheDir+localOnly tuple.
 */
import type { ResolvedSkillSpector } from './types';
export interface ResolveSkillSpectorOptions {
    /**
     * Tier-3 install spec — the pinned upstream SHA. Required when `localOnly` is
     * unset (without a SHA, the DLX tier can't run).
     */
    readonly sha?: string | undefined;
    /**
     * Tier-3 cache override. Defaults to `~/.socket/_dlx/skillspector/<sha>`.
     */
    readonly cacheDir?: string | undefined;
    /**
     * When true, only the VFS + PATH tiers run. Use for check-mode invocations
     * that want to fail-fast if the tool isn't already installed.
     */
    readonly localOnly?: boolean | undefined;
}
export declare function cacheKey(opts: ResolveSkillSpectorOptions): string;
export declare function doResolveSkillSpector(opts: ResolveSkillSpectorOptions): Promise<ResolvedSkillSpector | undefined>;
/**
 * Memoizing wrapper around {@link doResolveSkillSpector}.
 */
export declare function resolveSkillSpector(opts?: ResolveSkillSpectorOptions): Promise<ResolvedSkillSpector | undefined>;
