/**
 * @file `resolveOpengrep()` — OpenGrep resolution entry point. Tries each
 *   source in order:
 *
 *   1. VFS — smol binary's embedded OpenGrep (if packed)
 *   2. PATH — `opengrep` on the system PATH
 *   3. download — upstream GitHub release asset (only when `downloadIfMissing` is
 *      passed) Returns `undefined` if all of the enabled sources miss. Memoized
 *      per option-shape.
 */
import type { BinaryDownloader } from '../from-download';
import type { HashSpec } from '../../integrity';
import type { ResolvedOpengrep } from './types';
export interface ResolveOpengrepOptions {
    downloadIfMissing?: {
        version: string;
        platformArch: string;
        integrity?: HashSpec | undefined;
        cacheDir?: string | undefined;
        downloader?: BinaryDownloader | undefined;
    } | undefined;
}
export declare function cacheKey(opts: ResolveOpengrepOptions | undefined): string;
export declare function doResolveOpengrep(opts?: ResolveOpengrepOptions | undefined): Promise<ResolvedOpengrep | undefined>;
export declare function resetOpengrepResolution(): void;
export declare function resolveOpengrep(opts?: ResolveOpengrepOptions | undefined): Promise<ResolvedOpengrep | undefined>;
