/**
 * Shared auto-refresh wiring for `<ModelTable>` and `<ModelIterator>`.
 *
 * Both components expose the same `autoRefresh` / `autoRefreshDefault` / `autoRefreshControl`
 * props and gate polling on the same signals (dialog open + in-flight loading). This helper
 * keeps that contract in one place: pass the model's `reload`/`isLoading` and the dialog-open
 * ref, get back the `useAutoRefresh` handle plus a `manualReload` that reloads and restarts
 * the countdown (used by the toolbar refresh icon).
 */
import { type Ref } from 'vue';
import { type UseAutoRefreshHandle } from './autoRefresh.js';
export interface ModelAutoRefreshProps {
    autoRefresh?: number | boolean;
    autoRefreshDefault?: number;
}
export interface UseModelAutoRefreshDeps {
    /** The model composable's reload(). */
    reload: () => void | Promise<void>;
    /** The model composable's loading flag. */
    isLoading: Ref<boolean>;
    /** Component ref that is true while a create/edit dialog is open. */
    isDialogOpen: Ref<boolean>;
}
export interface UseModelAutoRefreshHandle {
    autoRefresh: UseAutoRefreshHandle;
    /** Reload now and restart the countdown — wired to the toolbar refresh icon. */
    manualReload: () => void;
}
export declare function useModelAutoRefresh(props: ModelAutoRefreshProps, deps: UseModelAutoRefreshDeps): UseModelAutoRefreshHandle;
