import { CacheCore, TypeCacheRecord, CacheCoreConfig } from './cache-core.js'; import 'idb-keyval'; import './encode-core.js'; declare class RequestCore Promise, TaskError = any, Meta = Record> extends CacheCore> | undefined | null, Parameters> { protected _config: TaskManagerCoreConfig; constructor(_config: TaskManagerCoreConfig); protected _retriedOnError: number; protected _defaultRequestDetails: RequestDataRecordType; protected _requestDetails: RequestDataRecordType; get requestDetails(): Readonly<{ value: RequestDataRecordType; }>; get meta(): Meta; protected _setRequestDetails(updater: (prev: RequestDataRecordType) => RequestDataRecordType): void; protected _isPrevented({ hash, config: { isInvalidate, isPreProcess }, }: { hash: string; config: RequestConfigBase; }): boolean; protected _requestCore({ parameters, config, }: { parameters: Parameters; config: RequestConfigBase; }): Promise<{ data?: Awaited> | undefined | null; error?: TaskError; isError?: boolean; createdAt: number; updatedAt: number; hash: string; parameters: Parameters; meta: Meta; isPrevented?: boolean; } & SharedConfigs>; private _try; private _error; private _finally; protected get _isRetryOnError(): boolean; protected _isSameRequest(hash: string): boolean; reset(): this; } type RequestConfigBase Promise, TaskError = any, Meta = Record> = RequestEventHandlersType & Partial; type RequestConfigs Promise, TaskError = any, Meta = Record> = Partial & RequestEventHandlersType; type RequestEventHandlersType Promise, TaskError = any, Meta = Record> = { onCache?: (params: { cache?: TypeCacheRecord> | undefined | null>; hash: string; parameters: Parameters; meta: Meta; } & SharedConfigs, instance: RequestCore) => any; onRequest?: (params: { parameters: Parameters; hash: string; meta: Meta; } & SharedConfigs, instance: RequestCore) => any; onSuccess?: (params: { data: Awaited> | undefined | null; hash: string; parameters: Parameters; meta: Meta; } & SharedConfigs, instance: RequestCore) => any | Promise; onError?: (params: { error: TaskError; hash: string; parameters: Parameters; meta: Meta; } & SharedConfigs, instance: RequestCore) => any | Promise; onFinally?: (props: { data?: Awaited> | undefined | null; error?: TaskError; hash: string; parameters: Parameters; meta: Meta; } & SharedConfigs, instance: RequestCore) => any | Promise; }; type TaskManagerInterceptorsType Promise, TaskError = any, Meta = Record> = { cache?: (props: { cache: TypeCacheRecord> | undefined | null> | undefined; hash: string; parameters: Parameters; config: RequestConfigBase; meta: Meta; } & SharedConfigs, instance: RequestCore) => Promise<{ isIgnored?: boolean; cache: TypeCacheRecord> | undefined | null> | undefined; }>; request?: (props: { parameters: Parameters; config: RequestConfigBase; hash: string; meta: Meta; } & SharedConfigs, instance: RequestCore) => Promise<{ isPrevented?: boolean; parameters: Parameters; }>; success?: (props: { parameters: Parameters; config: RequestConfigBase; data: Awaited> | undefined | null; hash: string; meta: Meta; } & SharedConfigs, instance: RequestCore) => Promise<{ isIgnored?: boolean; data: Awaited> | undefined | null; }>; error?: (props: { parameters: Parameters; config: RequestConfigBase; error: TaskError; hash: string; meta: Meta; } & SharedConfigs, instance: RequestCore) => Promise<{ isIgnored?: boolean; error: TaskError; }>; finally?: (props: { parameters: Parameters; config: RequestConfigBase; data: Awaited> | undefined | null; error: TaskError | undefined; hash: string; meta: Meta; } & SharedConfigs, instance: RequestCore) => Promise<{ isIgnored?: boolean; data?: Awaited> | undefined | null; error?: TaskError; }>; }; type SharedConfigs = { isPreProcess: boolean | undefined; isInvalidate: boolean | undefined; }; type TaskManagerCoreConfig Promise, TaskError = any, Meta = Record> = { handler: Task; retryOnError?: number; retryOnErrorDelay?: number; preventNewRequestDuration?: number; defaultEventHandlers?: RequestEventHandlersType; interceptors?: TaskManagerInterceptorsType; meta?: Meta; cache?: CacheCoreConfig; }; type RequestDataRecordType Promise> = { parameters?: Parameters; hash?: string; createdAt?: number; updatedAt?: number; isRequested?: boolean; isSucceed?: boolean; isCached?: boolean; isBlocked?: boolean; isFailed?: boolean; status?: RequestStatus; procedure?: RequestStatus[]; error?: any; data?: Awaited> | null; cache?: TypeCacheRecord> | undefined | null>; }; type RequestStatus = "requested" | "began" | "succeed" | "cached" | "blocked" | "failed"; export { type RequestConfigBase, type RequestConfigs, RequestCore, type RequestDataRecordType, type RequestEventHandlersType, type RequestStatus, type SharedConfigs, type TaskManagerCoreConfig, type TaskManagerInterceptorsType };