/**
 * Update State Persistence
 * Manages persistent state for the proxy auto-update feature.
 * Tracks check timestamps, suppressed versions, and update history.
 *
 * State file location: ~/.neurolink/update-state.json
 * Suppressed versions expire after 24 hours.
 */
import type { UpdateState } from "../types/index.js";
/**
 * Return an empty/initial UpdateState.
 */
export declare function getDefaultUpdateState(): UpdateState;
/**
 * Load the update state from disk.
 * Returns null if the file does not exist.
 * Returns the default state if the file contains corrupt JSON.
 *
 * @param stateFilePath - Override path for testing (default: ~/.neurolink/update-state.json)
 */
export declare function loadUpdateState(stateFilePath?: string): UpdateState | null;
/**
 * Save the update state to disk.
 *
 * @param state - The UpdateState to persist
 * @param stateFilePath - Override path for testing (default: ~/.neurolink/update-state.json)
 */
export declare function saveUpdateState(state: UpdateState, stateFilePath?: string): void;
/**
 * Check whether a version is currently suppressed (i.e., suppressed AND within the 24-hour window).
 *
 * @param version - Semver version string to check
 * @param stateFilePath - Override path for testing
 */
export declare function isVersionSuppressed(version: string, stateFilePath?: string): boolean;
/**
 * Add a version to the suppressed list and persist.
 *
 * @param version - Semver version string to suppress
 * @param reason - Human-readable reason for suppression
 * @param stateFilePath - Override path for testing
 */
export declare function suppressVersion(version: string, reason: string, stateFilePath?: string): void;
/**
 * Record a successful update: set lastUpdateAt and lastUpdateVersion, then persist.
 *
 * @param version - The version that was successfully installed
 * @param stateFilePath - Override path for testing
 */
export declare function recordSuccessfulUpdate(version: string, stateFilePath?: string): void;
/**
 * Record an update check: set lastCheckAt and lastCheckVersion, then persist.
 *
 * @param latestVersion - The latest version found during the check
 * @param stateFilePath - Override path for testing
 */
export declare function recordCheck(latestVersion: string, stateFilePath?: string): void;
