import { Element } from '../../../../../client/element';
import { System } from '../../../../../system';
import { Dict } from '../../../../../types/Dict';
import Div from '../../Div/Component';
import Frame from '../../Frame/Component';
export interface Props {
    className?: string;
    style?: Dict<string>;
    title?: string;
    height?: number;
    width?: number;
    component?: Element;
    icon?: string;
    active?: boolean;
    hidden?: boolean;
    y?: number;
    shortcut?: string;
}
export declare const KNOB_HEIGHT = 35;
export default class Drawer extends Element<HTMLDivElement, Props> {
    drawer: Div;
    content: Div;
    frame: Frame;
    private _knob;
    private _tooltip;
    private _active;
    private _hidden;
    private _hover;
    private _y;
    constructor($props: Props, $system: System);
    private _drawer_style;
    onPropChanged(prop: string, current: any): void;
    private setActive;
    private _transform;
    private _get_translate_x;
    private _setActive;
    private _translate;
    private _resize;
    private _on_knob_click;
    private _on_knob_pointer_enter;
    private _on_knob_pointer_leave;
    private _drag;
    private _drag_dy;
    private _drag_pointer_id;
    private _clamp_top;
    private _on_knob_pointer_down;
    private _on_container_resize;
    private _frame_listener;
    onMount(): void;
    onUnmount(): void;
    private _animation;
    private _animate;
    private _animate_transform;
    show(animate: boolean): void;
    hide(animate: boolean): void;
    show_tooltip: () => void;
    hide_tooltip: () => void;
}
