export interface UseQueryOptions { /** Nøkkel som identifiserer forespørselen (påvirker caching/deduplisering). */ queryKey: string | readonly unknown[]; /** Asynkron funksjon som henter data. Får AbortSignal som første argument. */ queryFn: AsyncQueryFn; /** Kjør automatisk når nøkkel/argumenter endrer seg */ enabled?: boolean; /** Millisekunder data regnes som ferske; 0 betyr alltid utdatert */ staleTime?: number; /** Behold forrige data mens ny henting pågår. NB! Gjelder bruk av refetch, ikke når nøkkel har endret seg. */ keepPreviousData?: boolean; /** Kalles når data har blitt hentet */ onSuccess?: (data: TData) => void; /** Kalles ved feil */ onError?: (err: unknown) => void; /** Argumenter som sendes til den asynkrone funksjonen */ args?: TArgs; /** * Valgfri funksjon for å slå sammen ny data med eksisterende når fetchNext brukes */ merge?: (oldData: TData | undefined, newData: TData) => TData; /** * Data å vise mens ny nøkkel/argumenter hentes og det ikke finnes cache for den nøkkelen ennå. * Kan være en verdi eller en funksjon som får forrige viste data og nåværende kontekst. */ placeholderData?: TData | ((prevData: TData | undefined, ctx: { queryKey: string | readonly unknown[]; args: TArgs; }) => TData); } export interface LocalQueryResult { /** * Rådata for gjeldende nøkkel/argumenter. Undefined mens lasting pågår eller før første svar. */ data: TData | undefined; /** * Siste feil kastet av den asynkrone funksjonen (hvis noen). Nullstilles ved vellykket ny henting. */ error: unknown; /** * True mens en forespørsel for gjeldende nøkkel/argumenter er i gang. */ isLoading: boolean; /** * Praktisk flagg som er true når det finnes en feil (error !== undefined). */ isError: boolean; /** * Tidspunkt (ms) når data sist ble oppdatert med suksess. */ dataUpdatedAt: number | undefined; /** * Om cachet data regnes som utdatert i henhold til `staleTime`. * Utdatert data returneres fortsatt, men automatisk refetch kan skje. */ isStale: boolean; /** * Manuelt trigge refetch, uavhengig av ferskhet (respekterer deduplisering og abort-regler). */ refetch: () => void; /** * Avledet status: 'idle' (aldri hentet), 'loading', 'success' eller 'error'. */ status: 'idle' | 'loading' | 'success' | 'error'; /** Hent neste «side» ved å gi eksplisitte args; resultatet merges inn i eksisterende data hvis merge er satt. */ fetchNext: (nextArgs: TArgs) => void; } export type AsyncQueryFn = (signal: AbortSignal, ...args: TArgs) => Promise; /** * useQuery er en React-hook for å hente og cache asynkrone data. * * - Lokal cache per input (kun i denne komponent-instansen), med mulighet for å sette hvor lenge data anses som ferskt * - Deduplisering av forespørsler som allerede er i gang * - Avbryter requests som ikke trengs mer fordi input er endret * - Ignorerer requests som kommer for sent tilbake (input er endret i mens) * - Manuell refetch * - Mulig å beholde forrige data mens ny hentes * - Støtte for paginering/infinite scroll ved å kunne nye resultater inn i gamle * - Støtte for placeholderdata mens data lastes * * @param options Objekt med options, se UseQueryOptions */ export declare function useQuery(options: UseQueryOptions): LocalQueryResult; //# sourceMappingURL=useQuery.d.ts.map