import { BehaviorSubject } from 'rxjs';
/**
 * A projection definitions.
 */
export type OpenPanelOptions = {
    /**
     * True to open the panel, false to close, undefined to toggle.
     */
    state?: boolean;
    /**
     * Automatically close the panel on tool panel change, for footer panel.
     */
    autoClose?: boolean;
    /**
     * Don't throw an error on closing an unopened panel.
     */
    noError?: boolean;
};
/**
 * Manage the panels of the DesktopCanvas.
 *
 * Example of usage:
 * ```js
 *    (window as any).gmfapi.store.panels.openToolPanel('name');
 *    (window as any).gmfapi.store.panels.openFooterPanel('name');
 *    (window as any).gmfapi.store.panels.closeToolPanel();
 *    (window as any).gmfapi.store.panels.closeFooterPanel();
 * ```
 */
export declare class PanelsModel {
    /**
     * The observable active tool panel.
     *
     * @private
     */
    activeToolPanel_: BehaviorSubject<string>;
    /**
     * The observable active footer panel.
     *
     * @private
     */
    activeFooterPanel_: BehaviorSubject<string>;
    /**
     * The observable active panels properties.
     *
     * @private
     */
    filterActive_: BehaviorSubject<boolean>;
    /**
     * The current state of active tool panel.
     *
     * @private
     */
    activeToolPanelState_: string;
    /**
     * The current state of active footer panel.
     *
     * @private
     */
    activeFooterPanelState_: string;
    /**
     * Close the footer panel on tool panel change?
     *
     * @private
     */
    autoCloseFooterPanel_: boolean;
    /**
     * @returns the behavior about the active panel in the tool.
     */
    getActiveToolPanel(): BehaviorSubject<string>;
    /**
     * @returns the behavior about the active panel in the footer.
     */
    getActiveFooterPanel(): BehaviorSubject<string>;
    /**
     * Experimental.
     *
     * @returns the behavior about the active filter.
     */
    getFilterActive(): BehaviorSubject<boolean>;
    /**
     * Open a panel, or close if already open
     *
     * @param panel the panel
     * @param options the options
     */
    openToolPanel(panel: string, options?: OpenPanelOptions): void;
    /**
     * Open a panel, or close if already open
     *
     * @param panel the panel
     * @param options the options
     */
    openFooterPanel(panel: string, options?: OpenPanelOptions): void;
    /**
     * Close the tool panel.
     */
    closeToolPanel(): void;
    /**
     * Close the footer panel.
     */
    closeFooterPanel(): void;
    /**
     * Set if there is some active filter.
     *
     * Experimental.
     *
     * @param active is active.
     */
    setFilterActive(active: boolean): void;
}
declare const panels: PanelsModel;
export default panels;
