import { LogStreamOptions } from './types';
import { LogBlockType } from '../log-block';
import { PublicModelInterface } from '../../../core/types';
import { IKosIdentifiable } from '../../../core/core/types';
import { IKosDataModel, IKosVisitor, KosCreationContext } from '../../../core/core/kosModel';

export declare const MODEL_TYPE = "log-stream-model";
export type LogStreamModel = PublicModelInterface<LogStreamModelImpl>;
export declare class LogStreamModelImpl implements IKosDataModel, IKosIdentifiable {
    id: string;
    private logger;
    nodeId: string;
    private _blocks;
    name: string;
    currentBlockId: string;
    isResetting: boolean;
    constructor(modelId: string, options: LogStreamOptions, context: KosCreationContext);
    get firstLineNum(): number;
    get currentBlock(): import('../log-block').LogBlockModel | undefined;
    get populated(): import('../log-block').LogBlockModel[];
    get blocks(): import('../log-block').LogBlockModel[];
    get totalLineCount(): number;
    accept(visitor: IKosVisitor<IKosDataModel>): void;
    updateBlock(blockData: LogBlockType): void;
    addBlock(blockData: LogBlockType): void;
    removeBlock(blockNum: number): void;
    subscribe(): Promise<void>;
    unsubscribe(): Promise<void>;
    reset(): Promise<void>;
    init(): Promise<void>;
    load(): Promise<void>;
    private generatorInstance?;
    private shouldStop;
    start(): AsyncGenerator<string, void, void>;
    stop(): void;
    streamLogs(): AsyncGenerator<string, void, void>;
}
//# sourceMappingURL=log-stream-model.d.ts.map