import { IActiveCodeEditor } from '@vscode/monaco-editor/esm/vs/editor/browser/editorBrowser';
import { ITextModel } from '@vscode/monaco-editor/esm/vs/editor/common/model';
export declare class TextEditorSnapshot {
    readonly editor: IActiveCodeEditor;
    readonly id: string;
    constructor(editor: IActiveCodeEditor);
}
export declare class DocumentAndEditorStateDelta {
    readonly removedDocuments: ITextModel[];
    readonly addedDocuments: ITextModel[];
    readonly removedEditors: TextEditorSnapshot[];
    readonly addedEditors: TextEditorSnapshot[];
    readonly oldActiveEditor: string | null | undefined;
    readonly newActiveEditor: string | null | undefined;
    readonly isEmpty: boolean;
    constructor(removedDocuments: ITextModel[], addedDocuments: ITextModel[], removedEditors: TextEditorSnapshot[], addedEditors: TextEditorSnapshot[], oldActiveEditor: string | null | undefined, newActiveEditor: string | null | undefined);
    toString(): string;
}
export declare class DocumentAndEditorState {
    readonly documents: Set<ITextModel>;
    readonly textEditors: Map<string, TextEditorSnapshot>;
    readonly activeEditor: string | null | undefined;
    static compute(before: DocumentAndEditorState, after: DocumentAndEditorState): DocumentAndEditorStateDelta;
    constructor(documents: Set<ITextModel>, textEditors: Map<string, TextEditorSnapshot>, activeEditor: string | null | undefined);
}
