import * as React from "react";
import { PanelHeader } from "./panelHeader";
import { PanelBody } from "./panelBody";
import { PanelFooter } from "./panelFooter";
export interface IPanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "dir"> {
    /**
     * Variant of the Panel
     * @default compact
     */
    variant?: "extended" | "compact";
    /**
     * Prop to control the panel display
     * @default false
     */
    showPanel?: boolean;
    /**
     * Toggle the visibility of the Panel without unmounting it
     * @default false
     */
    toggleVisibilityUsingCss?: boolean;
    /**
     *  Overwrite the Panel styles by passing space separated class names
     */
    className?: string;
    /**
     * Accepts children of ReactNode type
     */
    children: React.ReactNode;
    /**
     * Direction from which the panel slides in
     * @default "right"
     */
    slideDirection?: "left" | "right";
    /**
     * If true, indicates that the app is in RTL (right-to-left) mode
     * When true in RTL mode, slideDirection="left" will make panel open from right
     * @default false
     */
    rtl?: boolean;
    /**
     * Pass a reference to the element where the Panel needs to be rendered
     * @default document.body
     */
    portalTarget?: HTMLElement;
    /**
     * A list of Refs to be considered as a part of the Lock. The html elements in the list will be accessible while the Panel is open.
     */
    shards?: (HTMLElement | React.RefObject<HTMLElement>)[];
    /**
     * Optional callback function to call when panel is closed
     */
    onClose?: (e: React.MouseEvent<HTMLDivElement> | KeyboardEvent) => void;
}
declare const PanelComponent: React.ForwardRefExoticComponent<IPanelProps & React.RefAttributes<HTMLDivElement>>;
type TPanelCompoundComponent = typeof PanelComponent & {
    Header: typeof PanelHeader;
    Body: typeof PanelBody;
    Footer: typeof PanelFooter;
};
export declare const Panel: TPanelCompoundComponent;
export {};
