import { CancellationToken, DisposableCollection, Event } from '@theia/core';
import { NotebookCellStatusBarItem, TransientOptions } from '@theia/notebook/lib/common';
import { NotebookService, NotebookWorkspaceEdit } from '@theia/notebook/lib/browser';
import { Disposable } from '@theia/plugin';
import { CommandRegistryMain, NotebooksExt, NotebooksMain, WorkspaceEditDto } from '../../../common';
import { RPCProtocol } from '../../../common/rpc-protocol';
import { UriComponents } from '@theia/core/lib/common/uri';
import { interfaces } from '@theia/core/shared/inversify';
export interface NotebookCellStatusBarItemList {
    items: NotebookCellStatusBarItem[];
    dispose?(): void;
}
export interface NotebookCellStatusBarItemProvider {
    viewType: string;
    onDidChangeStatusBarItems?: Event<void>;
    provideCellStatusBarItems(uri: UriComponents, index: number, token: CancellationToken): Promise<NotebookCellStatusBarItemList | undefined>;
}
export declare class NotebooksMainImpl implements NotebooksMain {
    protected readonly disposables: DisposableCollection;
    protected notebookService: NotebookService;
    protected readonly proxy: NotebooksExt;
    protected readonly notebookSerializer: Map<number, Disposable>;
    protected readonly notebookCellStatusBarRegistrations: Map<number, Disposable>;
    constructor(rpc: RPCProtocol, container: interfaces.Container, commands: CommandRegistryMain);
    dispose(): void;
    $registerNotebookSerializer(handle: number, viewType: string, options: TransientOptions): void;
    $unregisterNotebookSerializer(handle: number): void;
    $emitCellStatusBarEvent(eventHandle: number): void;
    $registerNotebookCellStatusBarItemProvider(handle: number, eventHandle: number | undefined, viewType: string): Promise<void>;
    $unregisterNotebookCellStatusBarItemProvider(handle: number, eventHandle: number | undefined): Promise<void>;
}
export declare function toNotebookWorspaceEdit(dto: WorkspaceEditDto): NotebookWorkspaceEdit;
//# sourceMappingURL=notebooks-main.d.ts.map