import { LogStreamContainerOptions } from './types';
import { LogStreamModel } from './log-stream-model';
import { LogBlockType, LogLinesType } from '../log-block';
import { IKosModelHolder, PublicModelInterface } from '../../../core/types';
import { IKosIdentifiable } from '../../../core/core/types';
import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
import { IKosModelContainer } from '../../../core/core/kos-container-model';

export declare const MODEL_TYPE = "log-stream-container-model";
export type LogStreamContainerModel = PublicModelInterface<LogStreamContainerModelImpl>;
export declare class LogStreamContainerModelImpl implements IKosIdentifiable, IKosModelHolder<LogStreamModel>, IKosDataModel {
    id: string;
    private logger;
    selectedStream?: LogStreamModel;
    private _models;
    constructor(modelId: string, options: LogStreamContainerOptions, context: KosCreationContext);
    getModel(id: string): LogStreamModel | undefined;
    get models(): IKosModelContainer<LogStreamModel>;
    get data(): LogStreamModel[];
    updateModel(_options: LogStreamContainerOptions): void;
    addModel(model: LogStreamModel): void;
    removeModel(id: string): void;
    updateSelectedStream(stream?: LogStreamModel): void;
    handleStreamAdded(data: {
        stream: string;
    }): void;
    handleAddBlock(data: LogBlockType, payload: any): void;
    handleRemoveBlock(data: LogBlockType, payload: any): void;
    handleUpdateBlock(data: LogBlockType, payload: any): void;
    handleLogLine(data: LogLinesType, payload: any): void;
    init(): Promise<void>;
    subscribeToLogStream(stream: string): Promise<void>;
    load(): Promise<void>;
}
//# sourceMappingURL=log-stream-container-model.d.ts.map