import type { FunctionComponent, ReactNode } from 'react';
import type { AsProp, BaseProps, ForwardProps } from '../../types';
export interface DrawerProps extends AsProp, BaseProps {
    /**
     * If true, the Drawer will be visible.
     * @default false
     */
    open: boolean;
    /** Content of the Drawer. */
    children?: ReactNode;
    /**
     * Determines whether a drop shadow should be visible along the edge of the Drawer for contrast purposes.
     * @default false
     */
    shadow?: boolean;
    /**
     * Used to determine which side of the viewport the Drawer should open from.
     * @default 'right'
     */
    placement?: 'top' | 'right' | 'bottom' | 'left';
    /**
     * The position of the Drawer.
     * @default 'absolute'
     */
    position?: 'absolute' | 'fixed';
    /**
     * Determines the speed of the transition. This value comes from `theme.base.animation.speed`.
     * @default '0.25s'
     */
    transitionSpeed?: string;
    /**
     * The width or height that the Drawer will open to, depending on its placement.
     * If `resizeable`, is true this value will be overridden by the width set by the user.
     * @default '100%'
     */
    size?: string;
    /**
     * If true, the Drawer will be resizable. Will not be applied if `placement` is set to `top` or `bottom`.
     * @default false
     * @internal Can only be used with one drawer at a time.
     */
    resizeable?: boolean;
    /** Callback fired after Drawer opens. */
    onAfterOpen?: () => void;
    /** Callback fired after Drawer closes. */
    onAfterClose?: () => void;
    /** Callback fired before Drawer opens. */
    onBeforeOpen?: () => void;
    /** Callback fired before Drawer closes. */
    onBeforeClose?: () => void;
    /** Callback fired when a click action occurs outside of the Drawer. */
    onOuterClick?: () => void;
    /**
     * If true, removes the component from the real DOM when closed. For full virtual DOM unmount(if necessary), perform at a parent level.
     * @default false
     */
    nullWhenClosed?: boolean;
}
type State = 'open' | 'closed' | 'opening' | 'closing';
export declare const StyledDrawer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, Partial<DrawerProps & {
    state: State;
}>, never>;
export declare const Drawer: FunctionComponent<DrawerProps & ForwardProps>;
export default Drawer;
//# sourceMappingURL=Drawer.d.ts.map