1 | import { Reducer } from 'react';
|
2 | export declare type fetcherFn<Data> = (...args: any) => Data | Promise<Data>;
|
3 | export interface ConfigInterface<Data = any, Error = any, Fn extends fetcherFn<Data> = fetcherFn<Data>> {
|
4 | errorRetryInterval?: number;
|
5 | loadingTimeout?: number;
|
6 | focusThrottleInterval?: number;
|
7 | dedupingInterval?: number;
|
8 | refreshInterval?: number;
|
9 | refreshWhenHidden?: boolean;
|
10 | refreshWhenOffline?: boolean;
|
11 | revalidateOnFocus?: boolean;
|
12 | revalidateOnReconnect?: boolean;
|
13 | shouldRetryOnError?: boolean;
|
14 | fetcher?: Fn;
|
15 | suspense?: boolean;
|
16 | initialData?: Data;
|
17 | onLoadingSlow?: (key: string, config: ConfigInterface<Data, Error>) => void;
|
18 | onSuccess?: (data: Data, key: string, config: ConfigInterface<Data, Error>) => void;
|
19 | onError?: (err: Error, key: string, config: ConfigInterface<Data, Error>) => void;
|
20 | onErrorRetry?: (err: Error, key: string, config: ConfigInterface<Data, Error>, revalidate: revalidateType, revalidateOpts: RevalidateOptionInterface) => void;
|
21 | }
|
22 | export interface RevalidateOptionInterface {
|
23 | retryCount?: number;
|
24 | dedupe?: boolean;
|
25 | }
|
26 | declare type keyFunction = () => string | any[] | null;
|
27 | export declare type keyInterface = keyFunction | string | any[] | null;
|
28 | export declare type updaterInterface<Data = any, Error = any> = (shouldRevalidate?: boolean, data?: Data, error?: Error, shouldDedupe?: boolean) => boolean | Promise<boolean>;
|
29 | export declare type triggerInterface = (key: keyInterface, shouldRevalidate?: boolean) => void;
|
30 | export declare type mutateInterface<Data = any> = (key: keyInterface, data: Data | Promise<Data>, shouldRevalidate?: boolean) => void;
|
31 | export declare type broadcastStateInterface<Data = any, Error = any> = (key: string, data: Data, error?: Error) => void;
|
32 | export declare type responseInterface<Data, Error> = {
|
33 | data?: Data;
|
34 | error?: Error;
|
35 | revalidate: () => Promise<boolean>;
|
36 | isValidating: boolean;
|
37 | };
|
38 | export declare type revalidateType = (revalidateOpts: RevalidateOptionInterface) => Promise<boolean>;
|
39 | export declare type pagesWithSWRType<Data, Error> = (swr: responseInterface<Data, Error>) => responseInterface<Data, Error>;
|
40 | export declare type pagesPropsInterface<Offset, Data, Error> = {
|
41 | offset: Offset;
|
42 | withSWR: pagesWithSWRType<Data, Error>;
|
43 | };
|
44 | export declare type pageComponentType<Offset, Data, Error> = (props: pagesPropsInterface<Offset, Data, Error>) => any;
|
45 | export declare type pageOffsetMapperType<Offset, Data, Error> = (SWR: responseInterface<Data, Error>, index: number) => Offset;
|
46 | export declare type pagesResponseInterface = {
|
47 | pages: any;
|
48 | pageCount: number;
|
49 | pageSWRs: responseInterface<any, any>[];
|
50 | isLoadingMore: boolean;
|
51 | isReachingEnd: boolean;
|
52 | isEmpty: boolean;
|
53 | loadMore: () => void;
|
54 | };
|
55 | export declare type actionType<Data, Error> = {
|
56 | data?: Data;
|
57 | error?: Error;
|
58 | isValidating?: boolean;
|
59 | };
|
60 | export declare type reducerType<Data, Error> = Reducer<{
|
61 | data: Data;
|
62 | error: Error;
|
63 | isValidating: boolean;
|
64 | }, actionType<Data, Error>>;
|
65 | export {};
|