import { CancellationToken, Event } from '@theia/core';
import { NotebookCellStatusBarItem, TransientOptions } from '@theia/notebook/lib/common';
import { NotebookService } from '@theia/notebook/lib/browser';
import { NotebooksMain } from '../../../common';
import { RPCProtocol } from '../../../common/rpc-protocol';
import { UriComponents } from '@theia/core/lib/common/uri';
import { HostedPluginSupport } from '../../../hosted/browser/hosted-plugin';
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 {
    private notebookService;
    private readonly disposables;
    private readonly proxy;
    private readonly notebookSerializer;
    private readonly notebookCellStatusBarRegistrations;
    constructor(rpc: RPCProtocol, notebookService: NotebookService, plugins: HostedPluginSupport);
    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>;
}
//# sourceMappingURL=notebooks-main.d.ts.map