import { type Ref } from 'vue';
import type { FormState } from '../components/form/utils/state.js';
/**
 * Mirrors a table's query form state into `sessionStorage` so filters survive
 * a page reload — until the tab is closed / the user leaves the site.
 *
 * Modeled on `useActiveTabId`: storage is keyed on the table's stable
 * `config.id`, every access is guarded against SSR and unavailable storage
 * (privacy modes), and `restore()` is meant to run in `onMounted` after the
 * form's CEL `initial` seed has landed so the stored value overrides it.
 *
 * - `restore()` applies a stored snapshot onto `queryState` (no-op when
 *   disabled, when there is no `tableId`, or when nothing is stored).
 * - `clear()` drops the stored snapshot (used by `reset-query`, so a reset is
 *   authoritative and the stale query does not reappear on the next load).
 * - A deep watch persists live changes while enabled.
 */
export declare function usePersistedQuery(tableId: string | undefined, queryState: Ref<FormState>, enabled: () => boolean): {
    restore: () => void;
    clear: () => void;
};
