import type { AbortSignal } from 'bare-abort-controller'; import type { FitProbeRequest } from './engine-fit.js'; import type { FitRunResult } from './fit-outcome.js'; export interface RunFitOptions { signal?: AbortSignal; timeoutMs?: number; /** * Whether this host can spawn a disposable child. Resolved by the caller, * which already knows the runtime. */ mobile?: boolean; } /** * Runs one engine's fitter and returns what it projected. * * A disposable child is the stronger boundary — a fitter that aborts takes only * the child with it — so it is used wherever one can be spawned. Mobile has no * such child and runs the fitter in process, carrying crash markers to bound * the abort it cannot contain. `bare-subprocess` stays deferred from the mobile * pack that way. * * Both strategies are imported lazily, so a host only loads the one it uses. */ export declare function runFit(probe: FitProbeRequest, options?: RunFitOptions): Promise;