import type { Hint, HintContext } from "./types.js"; export interface MaybeShowHintOptions { /** Override the registry — used by tests. */ hints?: Hint[]; /** Override Math.random — used by tests. Returns a number in [0, 1). */ random?: () => number; /** Override the context builder — used by tests. */ contextOverride?: HintContext; /** Override console.log — used by tests. */ print?: (line: string) => void; } /** * Optionally print one applicable hint to stdout. Never throws. * * Silent-skip rules (must mirror `./AGENTS.md` "Behavior rules"): * 1. `config.hints?.enabled === false` * 2. `ctx.isTTY === false` * 3. `config.logLevel` is anything other than `info` (undefined counts * as `info` because that is the runtime default in `log()`) * 4. no hint's `when()` returned true * 5. any predicate or render call threw — caught here, logged at debug */ export declare function maybeShowHint(config: any, results: any, options?: MaybeShowHintOptions): Promise; /** * Compute the selection weight for a hint's priority. Lower priority * means higher weight, with a gentle ramp: * * priority 10 → weight 5 (onboarding) * priority 20 → weight 4 (current-run problems) * priority 30 → weight 3 (output / reporting) * priority 40 → weight 2 (feature discovery) * priority 50 → weight 1 (advanced / optimization) * * Anything below 10 still maps to 5; anything above 50 clamps to 1. * Missing priority defaults to weight 1. */ export declare function priorityWeight(priority: number | undefined): number; /** * Pick one applicable hint with a weighted random draw biased toward * higher-priority (lower-numbered) tiers. Earlier versions filtered * hard to the single lowest-priority tier, which meant users almost * always saw the same onboarding hint and rarely discovered * lower-tier ones. The new scheme keeps all eligible hints in the * draw and uses `priorityWeight` to bias the outcome. * * Exported so tests can drive the algorithm directly without the * surrounding I/O. */ export declare function pickByPriority(eligible: Hint[], rand: () => number): Hint; //# sourceMappingURL=index.d.ts.map