import type { Ref, ComputedRef } from 'vue' import type { Key, Fetcher, SWRConfig as CoreSWRConfig, MutatorOptions, BareFetcher } from '../../core' export interface SWRRefs { data: Ref error: Ref isLoading: Ref isValidating: Ref mutate: (data?: Data | Promise | ((currentData?: Data) => Data | Promise), options?: any) => Promise revalidate: (options?: any) => Promise } export interface SWRRef extends SWRRefs { // Additional Vue-specific methods can be added here } export interface SWRConfig extends CoreSWRConfig { // Vue-specific configuration options suspense?: boolean fallbackData?: Data revalidateOnMount?: boolean revalidateOnFocus?: boolean revalidateOnReconnect?: boolean refreshWhenHidden?: boolean refreshWhenOffline?: boolean compare?: (a: Data | undefined, b: Data | undefined) => boolean } // Re-export core types with SWR-compatible names export type { Key, Fetcher, MutatorOptions, BareFetcher, SWRFetcher } from '../../core'