import { Dispatch, SetStateAction } from "react"; import { ApolloQueryResult } from "apollo-client/core/types"; import { FetchResult } from "apollo-link"; import { Loading, LoadingActions } from "./types"; /** * A simple wrapper for Apollo fetching operations that handles the `loading` state as side effect. * * @param loadingHandler: function that handle the loading state. * @param apolloQuery: Apollo Query or Mutation */ export declare const apolloFetchingHandler: (loadingHandler: (flag: boolean) => void, apolloQuery: () => Promise | FetchResult>) => Promise | FetchResult>; /** * A simple function to handle `loading` state. * * @param action: the `action` that has been performed. * @param setState: the logic to update the loading state. */ export declare const loadingHandler: (action: LoadingActions, setState?: Dispatch>>) => (flag: boolean) => void; /** * A data loader wrapper that manages the loading state via a callback. * `loader` can be any function that returns a Promise. */ export declare function dataLoader(loadingHandler: (flag: boolean) => void, loader: () => Promise): Promise;