import { IReference, ReferenceCollection } from "../../../../../../base/common/lifecycle.js";
import { IModifiedFileEntry } from "../../../../chat/common/editing/chatEditingService.js";
import { INotebookService } from "../../../common/notebookService.service.js";
import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel";
import { IInstantiationService } from "../../../../../../platform/instantiation/common/instantiation.js";
import { ITextModelService } from "../../../../../../editor/common/services/resolverService.service.js";
import { INotebookOriginalModelReferenceFactory } from "./notebookOriginalModelRefFactory.service.js";
export declare class OriginalNotebookModelReferenceCollection extends ReferenceCollection<Promise<NotebookTextModel>> {
    private readonly notebookService;
    private readonly modelService;
    private readonly modelsToDispose;
    constructor(notebookService: INotebookService, modelService: ITextModelService);
    protected createReferencedObject(key: string, fileEntry: IModifiedFileEntry, viewType: string): Promise<NotebookTextModel>;
    protected destroyReferencedObject(key: string, modelPromise: Promise<NotebookTextModel>): void;
}
export declare class NotebookOriginalModelReferenceFactory implements INotebookOriginalModelReferenceFactory {
    private readonly instantiationService;
    readonly _serviceBrand: undefined;
    private _resourceModelCollection;
    private get resourceModelCollection();
    private _asyncModelCollection;
    private get asyncModelCollection();
    constructor(instantiationService: IInstantiationService);
    getOrCreate(fileEntry: IModifiedFileEntry, viewType: string): Promise<IReference<NotebookTextModel>>;
}
