import { VSBufferReadableStream } from "../../../../base/common/buffer.js";
import { CancellationToken } from "../../../../base/common/cancellation.js";
import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
import { URI } from "../../../../base/common/uri.js";
import { ConfigurationTarget } from "../../../../platform/configuration/common/configuration.js";
import { SnapshotContext } from "@codingame/monaco-vscode-6f931a91-88ea-5232-897f-a17ec3929ba5-common/vscode/vs/workbench/services/workingCopy/common/fileWorkingCopy";
import { NotebookCellTextModel } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/notebook/common/model/notebookCellTextModel";
import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel";
import { NotebookExtensionDescription, IOutputDto, IOrderedMimeType, INotebookRendererInfo, INotebookStaticPreloadInfo, INotebookContributionData } from "./notebookCommon.js";
import { NotebookProviderInfo } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/notebookProvider";
import { INotebookSerializer, SimpleNotebookProviderInfo } from "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common/vscode/vs/workbench/contrib/notebook/common/notebookService";
export declare const INotebookService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<INotebookService>;
export interface INotebookService {
    readonly _serviceBrand: undefined;
    canResolve(viewType: string): Promise<boolean>;
    readonly onAddViewType: Event<string>;
    readonly onWillRemoveViewType: Event<string>;
    readonly onDidChangeOutputRenderers: Event<void>;
    readonly onWillAddNotebookDocument: Event<NotebookTextModel>;
    readonly onDidAddNotebookDocument: Event<NotebookTextModel>;
    readonly onWillRemoveNotebookDocument: Event<NotebookTextModel>;
    readonly onDidRemoveNotebookDocument: Event<NotebookTextModel>;
    registerNotebookSerializer(viewType: string, extensionData: NotebookExtensionDescription, serializer: INotebookSerializer): IDisposable;
    withNotebookDataProvider(viewType: string): Promise<SimpleNotebookProviderInfo>;
    tryGetDataProviderSync(viewType: string): SimpleNotebookProviderInfo | undefined;
    getOutputMimeTypeInfo(textModel: NotebookTextModel, kernelProvides: readonly string[] | undefined, output: IOutputDto): readonly IOrderedMimeType[];
    getViewTypeProvider(viewType: string): string | undefined;
    getRendererInfo(id: string): INotebookRendererInfo | undefined;
    getRenderers(): INotebookRendererInfo[];
    getStaticPreloads(viewType: string): Iterable<INotebookStaticPreloadInfo>;
    /** Updates the preferred renderer for the given mimetype in the workspace. */
    updateMimePreferredRenderer(viewType: string, mimeType: string, rendererId: string, otherMimetypes: readonly string[]): void;
    saveMimeDisplayOrder(target: ConfigurationTarget): void;
    createNotebookTextModel(viewType: string, uri: URI, stream?: VSBufferReadableStream): Promise<NotebookTextModel>;
    createNotebookTextDocumentSnapshot(uri: URI, context: SnapshotContext, token: CancellationToken): Promise<VSBufferReadableStream>;
    restoreNotebookTextModelFromSnapshot(uri: URI, viewType: string, snapshot: VSBufferReadableStream): Promise<NotebookTextModel>;
    getNotebookTextModel(uri: URI): NotebookTextModel | undefined;
    getNotebookTextModels(): Iterable<NotebookTextModel>;
    listNotebookDocuments(): readonly NotebookTextModel[];
    /**	Register a notebook type that we will handle. The notebook editor will be registered for notebook types contributed by extensions */
    registerContributedNotebookType(viewType: string, data: INotebookContributionData): IDisposable;
    getContributedNotebookType(viewType: string): NotebookProviderInfo | undefined;
    getContributedNotebookTypes(resource?: URI): readonly NotebookProviderInfo[];
    hasSupportedNotebooks(resource: URI): boolean;
    getNotebookProviderResourceRoots(): URI[];
    setToCopy(items: NotebookCellTextModel[], isCopy: boolean): void;
    getToCopy(): {
        items: NotebookCellTextModel[];
        isCopy: boolean;
    } | undefined;
    clearEditorCache(): void;
}
