type InvalidateHandler = (newSrc: string) => void;
export type StreamWritable = AsyncIterator<string> & {
    write(data: string): void;
    error(reason: unknown): void;
    end(): void;
};
export declare class StreamSource {
    private readonly _slots;
    private _invalidateHandlers;
    private _closed;
    private getOrCreateSlot;
    run(parserIterator: AsyncIterator<string[]>): Promise<void>;
    slot(id: string): StreamWritable | undefined;
    close(err?: Error): void;
    onInvalidate(handler: InvalidateHandler): void;
    offInvalidate(handler: InvalidateHandler): void;
    invalidate(newSrc: string): void;
}
export declare function getSource(name: string, out?: any): StreamSource;
export declare function createWritable(): StreamWritable;
export {};
