import GirafeResizableElement from '../../base/GirafeResizableElement.js';
import IGirafePanel from '../../tools/state/igirafepanel.js';
/**
 * A panel component that extends GirafeResizableElement.
 * Used as main Left and Right panels on the app.
 * It has a state toggle manager that can activate or deactivate
 * toggle paths based on changes in its state.
 * It also has methods to shows/hide itself based on the state toggle paths and state.
 *
 * To have the toggle on the state working, the component must implement the IGirafePanel interface
 * and be added to the lr-panel:
 * <girafe-lr-panel>
 *   <any slot="main"></any>
 *   <any slot="main"></any>
 * </girafe-lr-panel>
 */
declare class LRPanelComponent extends GirafeResizableElement {
    protected templateUrl: string | null;
    protected styleUrls: string[] | null;
    template: () => import("uhtml").Hole;
    private stateToggleManager?;
    panelTitle: string;
    get hasMultipleChilds(): boolean;
    constructor();
    protected connectedCallback(): void;
    /**
     * Closes the panel by deactivating all state toggles and hiding itself.
     */
    closePanel(): void;
    /**
     * Retrieve the (valid boolean) toggle paths from child elements of the main slot.
     */
    private retrieveTogglePanels;
    /**
     * Subscribes to changes in togglePaths and shows or hides the component based on the changes.
     */
    private registerOnChildChange;
    renderPanel(panel: IGirafePanel): void;
}
export default LRPanelComponent;
