/**
 * Cross-page user preferences.
 *
 * Each entry below is a single localStorage key (under the
 * `agent-health:` prefix) shared by every page that exposes the
 * corresponding control, so e.g. picking "30d" on the Eval Runs page is
 * also reflected on Benchmarks and Test Cases.
 *
 * Storage layout is intentionally a flat, JSON-serialisable key/value
 * map: each preference is its own localStorage entry. That keeps the
 * format portable so prefs can be exported, copied across environments,
 * or backed up to a server store later without rewriting call sites.
 *
 * Helpers `getPreferencesSnapshot()` / `applyPreferencesSnapshot()`
 * below give a single-call dump and restore for that bundle, which is
 * the natural shape to send over the network.
 */
/** Stable, user-facing namespace for all cross-page preferences. */
export declare const PREFS_KEYS: {
    /** Run-config: agent the user wants to RUN (QuickRunModal, NewRunPage). */
    readonly agentKey: "prefs:agentKey";
    /** Run-config: model the user wants to RUN (QuickRunModal, NewRunPage). */
    readonly modelId: "prefs:modelId";
    /** Time-range filter, shared by evaluation list pages and Agent Traces. */
    readonly timeRange: "prefs:timeRange";
    /** Agent filter dropdown shared by Benchmarks and Eval Runs. Defaults to `'all'`. */
    readonly agentFilter: "prefs:agentFilter";
    /** Benchmark filter dropdown shared by Test Cases (and any future page). */
    readonly benchmarkFilter: "prefs:benchmarkFilter";
    /** Flat / grouped view mode shared by list pages. */
    readonly viewMode: "prefs:viewMode";
};
/** Possible string values for {@link PREFS_KEYS.timeRange}. */
export type SharedTimeRange = '1h' | '6h' | '1d' | '7d' | '30d' | 'all';
/**
 * Convert a {@link SharedTimeRange} to a "minutes ago" cutoff suitable
 * for the AgentTraces query. `'all'` is mapped to a very large window
 * (90d) so that there's always *some* finite cutoff sent to the server.
 */
export declare function sharedTimeRangeToMinutes(range: SharedTimeRange): number;
/**
 * Return a portable snapshot of every cross-page preference currently
 * stored in localStorage. Keys are the unprefixed identifiers (e.g.
 * `'prefs:timeRange'`) and values are already JSON-decoded.
 *
 * Use this to copy a user's preferences to clipboard, persist them
 * server-side, or assert against them in tests.
 */
export declare function getPreferencesSnapshot(): Record<string, unknown>;
/**
 * Apply a snapshot produced by {@link getPreferencesSnapshot}.
 * Unknown keys are ignored so the snapshot format stays forward-
 * compatible with future preferences. Pass an empty object to clear
 * every preference (sets nothing — call {@link clearPreferences} for
 * an explicit reset).
 */
export declare function applyPreferencesSnapshot(snapshot: Record<string, unknown>): void;
/**
 * Remove every preference from localStorage. Useful for "Reset
 * preferences" buttons and tests.
 */
export declare function clearPreferences(): void;
//# sourceMappingURL=preferences.d.ts.map