import { IObservableDisposable } from '@lumino/disposable';
import { ISignal } from '@lumino/signaling';
import { ServerConnection } from './serverconnection';
/**
 * Object which manages kernel instances for a given base url.
 *
 * #### Notes
 * The manager is responsible for maintaining the state of kernel specs.
 */
export interface IManager extends IObservableDisposable {
    /**
     * A signal emitted when there is a connection failure.
     */
    connectionFailure: ISignal<IManager, ServerConnection.NetworkError>;
    /**
     * The server settings for the manager.
     */
    readonly serverSettings: ServerConnection.ISettings;
    /**
     * Whether the manager is ready.
     */
    readonly isReady: boolean;
    /**
     * A promise that resolves when the manager is initially ready.
     */
    readonly ready: Promise<void>;
}
export declare abstract class BaseManager implements IManager {
    constructor(options: BaseManager.IOptions);
    /**
     * A signal emitted when the delegate is disposed.
     */
    get disposed(): ISignal<this, void>;
    /**
     * A signal emitted when there is a connection failure.
     */
    abstract connectionFailure: ISignal<this, Error>;
    /**
     * Test whether the delegate has been disposed.
     */
    get isDisposed(): boolean;
    /**
     * Test whether the manager is ready.
     */
    abstract isReady: boolean;
    /**
     * A promise that fulfills when the manager is ready.
     */
    abstract ready: Promise<void>;
    /**
     * Dispose of the delegate and invoke the callback function.
     */
    dispose(): void;
    /**
     * The server settings of the manager.
     */
    readonly serverSettings: ServerConnection.ISettings;
    private _isDisposed;
    private _disposed;
}
/**
 * The namespace for `BaseManager` class statics.
 */
export declare namespace BaseManager {
    /**
     * The options used to initialize a SessionManager.
     */
    interface IOptions {
        /**
         * The server settings for the manager.
         */
        serverSettings?: ServerConnection.ISettings;
    }
}
