import { ReactNode, ReactElement, HTMLAttributes, CSSProperties } from 'react';
import Form, { FormProps, FormValues } from '../Form';
import { DrawerProgressProps } from './DrawerProgress';
import '../../helpers/base.less';
import './Drawer.less';
export interface DrawerProps<FV extends FormValues = FormValues> {
    /**
     * Toggles visibility.
     * @since 0.0.65
     */
    isOpen: boolean;
    /**
     * The title of the `Drawer`.
     * @since 0.0.65
     */
    title: ReactNode;
    /**
     * The subtitle of the `Drawer`.
     * @since 0.0.65
     */
    subtitle?: ReactNode;
    /**
     * Show the minimize button and the inactive close button.
     * @since 1.4.1
     */
    hideButton?: boolean;
    /**
     * Show back button in the header. If true the close button is not show.
     * @deprecated Not recommended to use. Use default close button instead.
     * @since 0.0.65
     */
    backButton?: boolean;
    /**
     * A slot for `Tabs` component.
     * @since 3.26.0
     */
    tabs?: ReactNode;
    /**
     * Overlay placement.
     * @since 0.0.65
     */
    placement?: 'left' | 'right';
    /**
     * Overlay size.
     * @since 0.0.65
     */
    size?: 'xs' | 'sm' | 'md' | 'lg';
    /**
     * onClose handler.
     * @since 0.0.65
     */
    onClose?: () => void;
    /**
     * Whether show or not a confirmation dialog on close.
     * @since 3.21.0
     */
    closingConfirmation?: boolean;
    /**
     * Wraps children into [Form](#!/Form) if not empty.<br>
     * **Note:** in case of *element* you should take care of providing additional form props from [Drawer](#!/Drawer) through your custom component. See example below for more details
     * @since 0.0.66
     */
    form?: FormProps<FV> | typeof Form;
    /**
     * Block with an image, placed at the side of the component
     * @type string | ReactElement | HTMLAttributes<HTMLImageElement>
     * @since 3.25.0
     */
    sideBanner?: string | ReactElement | HTMLAttributes<HTMLImageElement>;
    /**
     * Additional properties for the sideBanner
     * @since 3.25.0
     */
    sideBannerContainer?: {
        background: string;
        align?: CSSProperties['alignItems'];
    };
    /**
     * Content of the `Drawer`.
     * @since 0.0.65
     */
    children?: ReactNode;
    /**
     * Adds [Progress](#!/Progress) into footer.
     * @since 1.11.0
     */
    progress?: DrawerProgressProps | null;
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
}
/**
 * `Drawer` component is used for working with properties of an object (or system) without leaving the context of the object.
 * [Read more when to use Drawer](#!/Drawers%2C%20pages%2C%20popovers).
 * @since 0.0.65
 */
declare const Drawer: {
    <FV extends FormValues = FormValues>({ baseClassName, className, children, title, subtitle, backButton, hideButton, tabs, onClose, form, progress, closingConfirmation, ...props }: DrawerProps<FV>): JSX.Element;
    defaultProps: Partial<DrawerProps<FormValues>>;
};
export default Drawer;
