import { ExcelTemplateManager } from './common/core/Template.cjs';
import { CellImportOptions } from './common/types/import-template.type.cjs';
import { a as ImporterReaderType, I as ImporterHandlerInstance, b as ImporterLoadFunctionOpions, F as FilterImportHandler } from './importer.type-BLiyiii7.cjs';
import { TypeParser } from './helpers/parse-type.cjs';
import { ConvertorRows2TableData } from './helpers/convert-row-to-table-data-v2.cjs';
import { RingPromise } from './common/core/RingPromise.cjs';
import { QueueData } from './common/core/QueueData.cjs';
import { SheetSection } from './common/types/common-type.cjs';

type BaseReaderOptions = {
    type: ImporterReaderType;
    chunkSize?: number;
    typeParser?: TypeParser;
    jobCount?: number;
    templateManager: ExcelTemplateManager<CellImportOptions>;
};
type ReaderFactoryItem = {
    reader: BaseReader;
    isDefault?: boolean;
    name: string;
};

declare abstract class BaseReader {
    private type;
    protected typeParser: TypeParser;
    protected handler: ImporterHandlerInstance;
    protected templateManager: ExcelTemplateManager<CellImportOptions>;
    protected convertorRows2TableData: ConvertorRows2TableData;
    protected options?: ImporterLoadFunctionOpions;
    protected queueData: QueueData<{
        data: any | any[];
        filter: FilterImportHandler;
    }>;
    protected ringPromise: RingPromise;
    protected globalError?: Error;
    constructor(opts: BaseReaderOptions);
    protected abstract load(arg: unknown): Promise<any>;
    run(templateManager: ExcelTemplateManager<CellImportOptions>, arg: unknown, handler: ImporterHandlerInstance, opts?: ImporterLoadFunctionOpions): Promise<void>;
    protected consumeData(): Promise<void>;
    getType(): ImporterReaderType;
    protected createTask(): (data: any | any[], filter: FilterImportHandler) => Promise<void>;
    protected onTrigger(section: SheetSection, data: any): Promise<void>;
    protected onErrors(errors: any): Promise<void>;
    protected setGlobalError(err: Error): void;
}

export { BaseReader as B, type ReaderFactoryItem as R, type BaseReaderOptions as a };
