import { Message } from 'phosphor-messaging';
import { Panel } from 'phosphor-panel';
import { ISignal } from 'phosphor-signaling';
import { TabPanel } from 'phosphor-tabs';
import { Widget } from 'phosphor-widget';
/**
 * A panel which contains a set of inspectors.
 */
export declare class Inspector extends TabPanel {
    /**
     * Construct an inspector.
     */
    constructor(options: Inspector.IOptions);
    /**
     * Set the orientation of the inspector panel.
     */
    orientation: Inspector.Orientation;
    /**
     * Set the source of events the inspector panel listens for.
     */
    source: Inspector.IInspectable;
    /**
     * Dispose of the resources held by the widget.
     */
    dispose(): void;
    /**
     * Handle inspector update signals.
     */
    protected onInspectorUpdate(sender: any, args: Inspector.IInspectorUpdate): void;
    /**
     * Handle source disposed signals.
     */
    protected onSourceDisposed(sender: any, args: void): void;
    private _items;
    private _orientation;
    private _source;
}
/**
 * A namespace for Inspector statics.
 */
export declare namespace Inspector {
    /**
     * The orientation options of an inspector panel.
     */
    type Orientation = 'horizontal' | 'vertical';
    /**
     * The definition of an inspector.
     */
    interface IInspectable {
        /**
         * A signal emitted when inspector should clear all items with no history.
         */
        clearEphemeral: ISignal<any, void>;
        /**
         * A signal emitted when the handler is disposed.
         */
        disposed: ISignal<any, void>;
        /**
         * A signal emitted when an inspector value is generated.
         */
        inspected: ISignal<any, IInspectorUpdate>;
    }
    /**
     * An update value for code inspectors.
     */
    interface IInspectorUpdate {
        /**
         * The content being sent to the inspector for display.
         */
        content: Widget;
        /**
         * The type of the inspector being updated.
         */
        type: string;
    }
    /**
     * The definition of a child item of an inspector panel.
     */
    interface IInspectorItem {
        /**
         * The optional class name added to the inspector child widget.
         */
        className?: string;
        /**
         * The display name of the inspector child.
         */
        name: string;
        /**
         * The rank order of display priority for inspector updates. A lower rank
         * denotes a higher display priority.
         */
        rank: number;
        /**
         * A flag that indicates whether the inspector remembers history.
         *
         * The default value is `false`.
         */
        remembers?: boolean;
        /**
         * The type of the inspector.
         */
        type: string;
        /**
         * The optional inspector child item instance.
         */
        widget?: InspectorItem;
    }
    /**
     * The initialization options for an inspector panel.
     */
    interface IOptions {
        /**
         * The list of available child inspectors items for code introspection.
         *
         * #### Notes
         * The order of items in the inspectors array is the order in which they
         * will be rendered in the inspectors tab panel.
         */
        items?: IInspectorItem[];
        /**
         * The orientation of the inspector panel.
         *
         * The default value is `'horizontal'`.
         */
        orientation?: Orientation;
    }
}
/**
 * A code inspector child widget.
 */
export declare class InspectorItem extends Panel {
    /**
     * This flag is a temporary placeholder and will be removed when we switch to
     * the phosphor mono-repo and have support for multiple inspector locations.
     */
    toggleEnabled: boolean;
    /**
     * Construct an inspector widget.
     */
    constructor();
    /**
     * The text of the inspector.
     */
    content: Widget;
    /**
     * The display orientation of the inspector widget.
     */
    orientation: Inspector.Orientation;
    /**
     * A signal emitted when an inspector widget's orientation is toggled.
     */
    orientationToggled: ISignal<InspectorItem, void>;
    /**
     * A flag that indicates whether the inspector remembers history.
     */
    remembers: boolean;
    /**
     * The display rank of the inspector.
     */
    rank: number;
    /**
     * Dispose of the resources held by the widget.
     */
    dispose(): void;
    /**
     * Handle `update_request` messages.
     */
    protected onUpdateRequest(msg: Message): void;
    /**
     * Navigate back in history.
     */
    private _back();
    /**
     * Clear history.
     */
    private _clear();
    /**
     * Navigate forward in history.
     */
    private _forward();
    /**
     * Create a history toolbar.
     */
    private _createToolbar();
    /**
     * Navigate to a known index in history.
     */
    private _navigateTo(index);
    private _content;
    private _history;
    private _index;
    private _orientation;
    private _rank;
    private _remembers;
    private _toolbar;
}
