/**
 * Advisor engine — the anti-annoyance brain.
 *
 * Pure decision core: given this run's candidate suggestions + the persisted
 * advisor state + the clock, decide which clear the relevance bar AND the
 * throttle AND dedup, and which get suppressed (journaled, not shown). The
 * caller does the I/O (load/save state, surface the survivors).
 *
 * See docs/ORCHESTRATOR_PLAN.md §5b.3 for the anti-annoyance contract.
 */
import { type AdvisorDecision, type AdvisorInput, type AdvisorState, type Suggestion, type SuggestionCategory } from "./types.js";
export declare const ADVISOR_STATE_PATH: string;
/** Relevance score = urgency × actionability × dismissal-decay. */
export declare function scoreSuggestion(s: Suggestion, state: AdvisorState): number;
/**
 * Pure decision. Returns the surface/suppress split AND the next state to
 * persist. Does not touch disk.
 */
export declare function decide(candidates: Suggestion[], state: AdvisorState, now: number): {
    decision: AdvisorDecision;
    nextState: AdvisorState;
};
/** Record a user dismissal so the category fades over time. */
export declare function applyDismissal(state: AdvisorState, id: string, category: SuggestionCategory): AdvisorState;
export declare function loadAdvisorState(p?: string): Promise<AdvisorState>;
export declare function saveAdvisorState(state: AdvisorState, p?: string): Promise<void>;
/**
 * Full advise cycle: detect → decide → persist. Returns the suggestions to
 * surface. Uses the soul lock so a heartbeat advise can't race a manual one.
 */
export declare function advise(input: AdvisorInput, statePath?: string): Promise<AdvisorDecision>;
/**
 * On-demand ("pull") advice: run the detectors against the current snapshot
 * and return everything above the bar, sorted — WITHOUT the throttle/dedup
 * (the user explicitly asked, so don't suppress) and WITHOUT mutating state.
 * Used by the advise_now tool.
 */
export declare function adviseNow(input: AdvisorInput, state?: AdvisorState): Suggestion[];
/** Render surfaced suggestions into one digest card (markdown-ish text). */
export declare function formatDigest(suggestions: Suggestion[]): string;
//# sourceMappingURL=engine.d.ts.map