import { Element } from '../../../../../client/element';
import { System } from '../../../../../system';
import { Dict } from '../../../../../types/Dict';
import Drawer, { Props as DrawerProps } from '../Drawer/Component';
export interface CabinetDrawerProps extends DrawerProps {
    active?: boolean;
    state?: {
        y?: number;
    };
    shortcut?: string;
}
export interface Props {
    className?: string;
    style?: Dict<string>;
    hidden?: boolean;
    dy?: number;
}
export declare const DEFAULT_STYLE: {
    position: string;
    right: string;
    top: string;
    width: string;
    height: string;
};
export default class Cabinet extends Element<HTMLDivElement, Props> {
    private _cabinet;
    private _drawer;
    private _drawer_component;
    private _drawer_node;
    private _drawer_active;
    private _drawer_y;
    private _simulation;
    private _component_frame;
    private _width;
    private _height;
    private _z_index;
    private _dy;
    constructor($props: Props, $system: System);
    private _memSetActive;
    onPropChanged(prop: string, current: any): void;
    setActive(drawerId: string, active: boolean): void;
    isActive(drawerId: string): boolean;
    getDrawer(drawerId: string): Drawer;
    setDrawerProp<K extends keyof DrawerProps>(drawerId: string, name: K, value: any): void;
    private _tick;
    private _force;
    private _on_context_resize;
    private _on_drawer_drag_start;
    private _on_drawer_dragged;
    private _on_drawer_drag_end;
    addDrawers: (drawers: Dict<CabinetDrawerProps>) => void;
    private _drawer_inactivating;
    addDrawer: (drawerId: string, cabinetDrawer: CabinetDrawerProps) => void;
    private _addDrawerNode;
    private _removeDrawerNode;
    private _fixed_drawer_node;
    private _startSimulation;
    removeDrawer(drawerId: string): void;
    getDrawers(): Dict<Drawer>;
    private _context_unlisten;
    onMount(): void;
    onUnmount(): void;
    private _incDrawerZIndex;
    private _on_resize;
    private _hidden;
    show(animate: boolean): void;
    hide(animate: boolean): void;
    show_tooltips: () => void;
    hide_tooltips: () => void;
}
