import { CacheDataError } from "../errors/cacheDataError";
import { BaseHandler } from "../handlers/baseHandler";
import { ILogger } from "../logger/logger";
export interface IInfo extends ILoadForce {
}
export declare enum LoadType {
    Full = 1,
    Quick = 2,
    Cache = 3
}
export interface ILoadForce {
    loadType: LoadType;
}
export declare abstract class BaseCacheDataHandler<TInfo extends IInfo, TResult> extends BaseHandler<TInfo, TResult> {
    constructor(logger: ILogger);
    abstract validate(form: TInfo): Promise<void>;
    abstract getLocalCacheData(info: TInfo): Promise<TResult | undefined>;
    abstract getExternalData(info: TInfo): Promise<TResult>;
    abstract updateField(info: TInfo, data: TResult): void;
    abstract getCacheDataError(info: TInfo): CacheDataError;
    abstract getLoadForceType(): LoadType[];
    process(info: TInfo): Promise<TResult>;
    private isExternalData;
    private getInternalIcrcData;
}
export declare abstract class BaseCacheDataHandlerV2<TInfo extends IInfo, TResult> {
    protected logger: ILogger;
    constructor(logger: ILogger);
    abstract getLocalCacheData(info: TInfo): Promise<TResult | undefined>;
    abstract getExternalData(info: TInfo): Promise<TResult>;
    abstract updateField(info: TInfo, data: TResult): void;
    abstract getCacheDataError(info: TInfo): CacheDataError;
    abstract getLoadForceType(): LoadType[];
    handle(form: TInfo): Promise<TResult>;
    private isExternalData;
    private getInternalIcrcData;
}
