import { Injectable } from '@opensumi/di'; import { Emitter, Event, UriComponents, WithEventBus } from '@opensumi/ide-core-browser'; import type { INotebookModelAddedData, INotebookService, NotebookDataDto, NotebookDocumentChangeDto } from './types'; @Injectable() export class NotebookService extends WithEventBus implements INotebookService { createNotebook: (data?: NotebookDataDto) => Promise<{ uri: UriComponents }>; openNotebook: (uriComponents: UriComponents) => Promise<{ uri: UriComponents }>; saveNotebook: (uriComponents: UriComponents) => Promise; protected _onDidOpenNotebookDocument = new Emitter(); onDidOpenNotebookDocument: Event = this._onDidOpenNotebookDocument.event; protected _onDidCloseNotebookDocument = new Emitter(); onDidCloseNotebookDocument: Event = this._onDidCloseNotebookDocument.event; protected _onDidSaveNotebookDocument = new Emitter(); onDidSaveNotebookDocument: Event = this._onDidSaveNotebookDocument.event; protected _onDidChangeNotebookDocument = new Emitter(); onDidChangeNotebookDocument: Event = this._onDidChangeNotebookDocument.event; }