import { default as React, PropsWithChildren } from 'react';
import { ObjectValues } from '../../utils/ObjectValues';
declare const SidebarPosition: {
    readonly LEFT: "left";
    readonly RIGHT: "right";
};
export type SidebarProps = {
    /**
     * Defines if the component will overlap the body content.
     *
     * @default false
     */
    fly?: boolean;
    /**
     * Defines whether the component is hidden or not.
     *
     * @default false
     */
    closed?: boolean;
    /**
     * Hides the close button. This may be used when the sidebar is always visible and may not be closed.
     *
     * @default false
     */
    disableClose?: boolean;
    /**
     * Callback function triggered when clicking the close icon.
     */
    onClose?: VoidFunction;
    /**
     * The Footer content. For example a save button.
     */
    footer?: string | React.ReactNode;
    /**
     * Additional classes added to the Sidebar footer.
     */
    footerClassName?: string;
    /**
     * Additional buttons to be rendered in the header.
     */
    headerButtons?: React.ReactNode;
    /**
     * Additional classes added to the Sidebar header.
     */
    headerClassName?: string;
    /**
     * Shows a sidebar header border
     */
    showHeaderBorder?: boolean;
    /**
     * Defines the width of the component. The value is set as pixel value as inline style.
     * Note: In the past, the type allowed to pass in a sting value like "400px" but that is not
     * possible anymore due to internal width calculations. To be backwards compatible for non
     * Typescript projects, the width is converted to a number.
     *
     * @default 350
     */
    width?: number;
    /**
     * Defines the minimum width in px of the component that will take effect when resizing.
     *
     * @default 100
     */
    minWidth?: number;
    /**
     * Defines the maximum width in px of the component that will take effect when resizing.
     *
     * @default 800
     */
    maxWidth?: number;
    /**
     * Opens Sidebar in fullscreen, means 100vw.
     *
     * @default false
     */
    openInFullscreen?: boolean;
    /**
     * Callback for when the fullscreen is toggled.
     */
    onFullScreenChange?: (newFullscreenState: boolean) => void;
    /**
     * Enables the fullscreen functionality and shows the fullscreen toggle.
     *
     * @default false
     */
    enableFullscreenToggle?: boolean;
    /**
     * Translated tooltip text for the fullscreen toggle button.
     */
    fullscreenToggleTooltip?: string;
    /**
     * Tells the sidebar where it is positioned. This will affect the resizing behavior
     * respectively. Note: the position need to be set properly whe using the resize
     * functionality to know on which side of the sidebar to attach the resizer handle.
     *
     * It is also relevant when the sidebar mode is set to `fly` to properly animate
     * the sidebar into the view.
     *
     * Possible values are:
     *
     * - `'left'`
     * - `'right'`
     * - `Sidebar.LEFT`
     * - `Sidebar.RIGHT`
     *
     * @default 'left'
     */
    position?: ObjectValues<typeof SidebarPosition>;
    /**
     * Defines whether or not the sidebar is resizable.
     * @default false
     */
    resizable?: boolean;
    /**
     * Callback for when the resize is done.
     */
    onResizeEnd?: VoidFunction;
    /**
     * Defines the breakpoint in pixel when the sidebar mode shall be changed. If the window width is lower
     * than the given breakpoint the mode is set to `fly`. If the window width is higher the mode is set
     * to `fluid`. This functionality is disabled by default and will be enabled when defining a breakpoint
     * higher than 0.
     */
    switchModeBreakpoint?: number;
    /**
     * By default the fullscreen mode can be left with "esc". If this is unwanted it can be disabled.
     *
     * @default false
     */
    disableEsc?: boolean;
    /**
     * Defined whether or not a backdrop will be rendered behind the Sidebar to avoid clicks outside.
     *
     * @default false
     */
    hasBackdrop?: boolean;
    /**
     * Defined whether or not the UIKIT SmoothScrollbar is active.
     *
     * @default false
     */
    hasSmoothScrollbar?: boolean;
    /**
     * Defined whether or not the backdrop is visible similar to the backdrop for modal dialogs.
     *
     * @default false
     */
    makeBackdropVisible?: boolean;
    /**
     * Callback for when the backdrop is clicked. This comes in handy when handling transient data from
     * the sidebar which need to be saved first and handle clicks outside.
     */
    onBackdropClick?: VoidFunction;
    /**
     * Additional ref added to the Sidebar body.
     */
    bodyRef?: React.MutableRefObject<HTMLDivElement | null>;
    /**
     * Content that will be displayed in the components header.
     */
    title?: string | React.ReactNode;
    /**
     * Additional classes added to the Sidebar title.
     */
    titleClassName?: string;
    /**
     * Additional classes added to the Sidebar backdrop.
     */
    backdropClassName?: string;
    /**
     * Additional classes added to the Sidebar body.
     */
    bodyClassName?: string;
    /**
     * Additional classes added on the wrapper element.
     */
    className?: string;
};
declare const Sidebar: {
    (props: PropsWithChildren<SidebarProps>): import("react/jsx-runtime").JSX.Element;
    LEFT: "left";
    RIGHT: "right";
    MODE_FLY: string;
    MODE_FLUID: string;
};
export default Sidebar;
