import { DataState, PiniaColadaPlugin } from "@pinia/colada";

//#region src/auto-refetch.d.ts
/**
 * Options for the auto-refetch plugin.
 */
interface PiniaColadaAutoRefetchOptions<TData = unknown, TError = unknown, TDataInitial = unknown> {
  /**
   * Whether to enable auto refresh by default.
   * @default false
   */
  autoRefetch?: boolean | number | (<T extends DataState<TData, TError, TDataInitial>>(state: T) => boolean | number);
}
/**
 * To store timeouts in the entry extensions.
 *
 * @internal
 */
declare const REFETCH_TIMEOUT_KEY: unique symbol;
/**
 * Plugin that automatically refreshes queries when they become stale
 */
declare function PiniaColadaAutoRefetch(options?: PiniaColadaAutoRefetchOptions): PiniaColadaPlugin;
declare module '@pinia/colada' {
  interface UseQueryOptions<TData, TError, TDataInitial> extends PiniaColadaAutoRefetchOptions<TData, TError, TDataInitial> {}
  interface UseQueryOptionsGlobal extends PiniaColadaAutoRefetchOptions {}
  interface UseQueryEntryExtensions<TData, TError, TDataInitial> {
    /**
     * Used to store the timeout for the auto-refetch plugin.
     * @internal
     */
    [REFETCH_TIMEOUT_KEY]?: ReturnType<typeof setTimeout>;
  }
}
//#endregion
export { PiniaColadaAutoRefetch, PiniaColadaAutoRefetchOptions, REFETCH_TIMEOUT_KEY as _REFETCH_TIMEOUT_KEY };
//# sourceMappingURL=index.d.mts.map