import { IBaseStream, EventRegister } from '../../common/core/ListEvents.js';
import { ExcelTemplateManager } from '../../common/core/Template.js';
import { EventType } from '../../common/types/common-type.js';
import { CellImportOptions } from '../../common/types/import-template.type.js';
import { I as ImporterHandlerInstance, a as ImporterLoadFunctionOpions, b as ImporterBaseReaderStreamType } from '../../importer.type-BKjB0M5n.js';
import { B as BaseReader } from '../../reader.type-v4toxDqU.js';
import { Readable } from 'stream';
import '../../helpers/parse-type.js';
import '../../helpers/convert-row-to-table-data-v2.js';
import 'exceljs';
import '../../common/core/RingPromise.js';
import '../../common/core/QueueData.js';

declare abstract class BaseReaderStream extends BaseReader implements IBaseStream {
    protected listEvents: EventRegister;
    protected readable: Readable;
    protected handler: ImporterHandlerInstance;
    constructor(data: {
        templateManager: ExcelTemplateManager<CellImportOptions>;
        readable: Readable;
        handler: ImporterHandlerInstance;
        options?: ImporterLoadFunctionOpions & {
            type?: ImporterBaseReaderStreamType;
        };
    });
    onStart(func: EventType["start"]): this;
    endData(func: EventType["enddata"]): this;
    onHeader(func: EventType["header"]): this;
    onFooter(func: EventType["footer"]): this;
    start(): void;
    on<EventKey extends keyof EventType>(key: EventKey, func: EventType[EventKey]): this;
    onFinish(func: EventType["finish"]): this;
    onBegin(func: EventType["begin"]): this;
    onData(func: EventType["data"]): this;
    onEnd(func: EventType["end"]): this;
    onError(func: EventType["error"]): this;
    protected abstract load(arg: unknown): Promise<any>;
}

export { BaseReaderStream };
