import type { Contents } from '@jupyterlab/services';
import type { ICoincidentShellWorker, IComlinkShellWorker, IShell } from '@jupyterlite/cockle';
import { BaseShell } from '@jupyterlite/cockle';
import type { Client as WebSocketClient } from 'mock-socket';
export interface ITerminalShell extends IShell {
    socket?: WebSocketClient;
}
export declare namespace ITerminalShell {
    interface IOptions extends IShell.IOptions {
        /**
         * The JupyterLite content manager, used for DriveFS requests via SharedArrayBuffer.
         */
        contentsManager?: Contents.IManager;
    }
}
/**
 * Shell class that uses web worker that plugs into a DriveFS via the service worker or shared
 * array buffer.
 */
export declare class TerminalShell extends BaseShell {
    /**
     * Instantiate a new Shell
     *
     * @param options The instantiation options for a new shell
     */
    constructor(options: ITerminalShell.IOptions);
    /**
     * Override base class createRemote to add handler for SharedArrayBuffer DriveFS request.
     */
    protected createRemote(options: IShell.IOptions & {
        worker: Worker;
    }): ICoincidentShellWorker | IComlinkShellWorker;
    /**
     * Load the correct web worker.
     */
    protected initWorker(options: ITerminalShell.IOptions): Worker;
    socket?: WebSocketClient;
    private _contentsManager;
    private _contentsProcessor;
}
