import type { ViewMode } from "../types";
/** Return value of {@link useViewPreference}. */
export interface UseViewPreferenceReturn {
    /** The currently active view mode. */
    readonly viewMode: ViewMode;
    /** Update the view mode. Persists to localStorage when a storage key is provided. */
    readonly setViewMode: (mode: ViewMode) => void;
}
/**
 * Persists the user's preferred view mode (table / cards / list) in
 * localStorage, scoped by a caller-provided storage key.
 *
 * Falls back to `defaultMode` when no persisted value exists or when
 * the stored value is invalid (forward-compatible with future modes).
 *
 * Pass `undefined` for `storageKey` to use an ephemeral (non-persisted)
 * view mode that resets on unmount.
 *
 * @param storageKey  localStorage key (e.g. `"stigmer:workbench:agents:viewMode"`).
 *                    Pass `undefined` to disable persistence.
 * @param defaultMode The view mode to use when no persisted value exists.
 *
 * @example
 * ```tsx
 * const { viewMode, setViewMode } = useViewPreference(
 *   "stigmer:workbench:agents:viewMode",
 *   "table",
 * );
 * ```
 */
export declare function useViewPreference(storageKey: string | undefined, defaultMode: ViewMode): UseViewPreferenceReturn;
//# sourceMappingURL=useViewPreference.d.ts.map