import { EventEmitter } from '../../stencil-public-runtime';
import { DRAWER_POSITION_TYPES, DRAWER_VARIANT_TYPES } from "../../utils/enums";
export type EventExpandChange = {
    variant: DRAWER_VARIANT_TYPES;
    activeDrawer: boolean;
};
export declare class SlDrawer {
    private invokeExpandChangedCallback;
    private invokeRequestCloseCallback;
    private componentDidLoadComplete;
    private disableScroll;
    private firstDrawer;
    el: HTMLSlDrawerElement;
    /** Title in the top */
    caption?: string;
    /** Size of the drawer */
    variant: DRAWER_VARIANT_TYPES | `${DRAWER_VARIANT_TYPES}`;
    /** Position of the drawer */
    position: DRAWER_POSITION_TYPES | `${DRAWER_POSITION_TYPES}`;
    /** Display or hide the drawer */
    activeDrawer: boolean;
    /**  Callback when expand changed */
    expandChangedCallback?: ((variant: string, activeDrawer: boolean) => void) | string;
    /** Callback when user click on close function */
    requestCloseCallback?: (() => void) | string;
    /** By default the scroll on body or with component with id scrollableDivForDrawer is automatically managed with the drawer. You can disable it. */
    disableLockScroll: boolean;
    /** Internal display or hide the drawer before or after transition */
    drawerActivated: boolean;
    /** Callback when user click on close function */
    requestCloseEvent: EventEmitter;
    /** Internal display or hide the drawer before or after transition */
    expandChangedEvent: EventEmitter<EventExpandChange>;
    private layer;
    private drawer;
    onActiveChange(): void;
    onFunctionCallbackChange(): void;
    constructor();
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    private updateComponentStack;
    private handleTransitionEnd;
    private setInvokeChangeCallback;
    /**
     * Close element when escape key is pressed
     * @param event
     */
    private handleKeyPress;
    private onCloseDrawer;
    private expandDrawer;
    private collapseDrawer;
    /**
     * Update styling of drawer and layer with transition
     * @param open
     */
    private updateStyles;
    render(): any;
}
