/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import EventEmitter from 'node:events';
import { Configuration } from './configuration.js';
import Iterator from './iterator.js';
import Generator from './generator.js';
import type Pipeline from './pipeline.js';
import type { NamedNode } from '@rdfjs/types';
import type { WriteStream } from 'node:fs';
import { Importer } from './import.js';
interface Events {
    importStart: [];
    imported: [numOfTriples: number];
    importSuccess: [numOfTriples: number];
    generatorResult: [count: number];
    end: [iteratorCount: number, statements: number];
    iteratorResult: [$this: NamedNode, quadsGenerated: number];
    error: [Error];
    importError: [Error];
}
export default class Stage extends EventEmitter<Events> {
    readonly pipeline: Pipeline;
    readonly configuration: Configuration['stages'][0];
    readonly destination: () => WriteStream;
    readonly iterator: Iterator;
    readonly generators: Generator[];
    readonly importer?: Importer;
    private iteratorEnded;
    constructor(pipeline: Pipeline, configuration: Configuration['stages'][0]);
    get destinationPath(): string;
    get name(): string;
    run(): Promise<void>;
    private parseDelay;
}
export declare class PreviousStage {
    readonly nextStage: Stage;
    readonly name: string;
    readonly $id = "PreviousStage";
    constructor(nextStage: Stage, name: string);
    load(): Stage;
    static is(value: unknown): value is PreviousStage;
}
export {};
//# sourceMappingURL=stage.d.ts.map