import { FetchingOptions } from '@epam/uui-core'; import { DbRef } from './DbRef'; import { DbPatch, DbTablesSet, LoadingState, ILoadingTracker } from './types'; export interface LoaderOptions, TResult, TRequest> { api: (request: TRequest, fetchingOptions: FetchingOptions) => Promise; convertToPatch?: (result: TResult) => DbPatch; postProcess?: (patch: DbPatch) => DbPatch; clientToServerRequest?: (request: TRequest) => TRequest; } export interface LoaderResult extends LoadingState { promise: Promise; reload: () => void; } export declare class Loader, TResult, TRequest> { private dbRef; private getTracker; private options; private currentRequests; loaded: ILoadingTracker; private loadedAndLoading; constructor(dbRef: DbRef, getTracker: () => ILoadingTracker, options: LoaderOptions); private loadImpl; load: (inputRequest: TRequest, fetchingOptions?: FetchingOptions) => LoaderResult; } //# sourceMappingURL=Loader.d.ts.map