import { default as React } from 'react'; import { ConfirmationPopoverContentProps } from '../ConfirmationPopover/ConfirmationPopoverContent'; import { StepperProps } from '../Stepper/Stepper'; type SideDrawerWithSize = SideDrawerBase & { /** Size of the drawer */ size?: 'sm' | 'md' | 'lg'; fullWidth?: never; }; type SideDrawerWithFullWidth = SideDrawerBase & { /** Optionally render `SideDrawer` in a full width view. */ fullWidth?: boolean; size?: never; }; type DetermineSideDrawerSize = SideDrawerWithSize | SideDrawerWithFullWidth; type SideDrawerWithText = DetermineSideDrawerSize & { /** The content to be rendered within the header. */ headerContent: React.ReactNode; logoUrl?: never; }; type SideDrawerWithLogo = DetermineSideDrawerSize & { headerContent?: never; /** Optional logo to be passed in place of `headerContent` */ logoUrl: string; }; export type SideDrawerBase = { /** The content to be rendered within the component. */ children: React.ReactNode | (({ height, close, }: { height: number; close: () => void; }) => React.JSX.Element); /** The open state of `SideDrawer`. */ isOpen: boolean; /** Callout function to close the `SideDrawer`. */ closeCallout: React.MouseEventHandler & ((isOutsideClick?: boolean) => void); /** Optional className for the `SideDrawer` container */ containerClassName?: string; /** Optional className for the content */ contentClassName?: string; /** The content to be rendered within the footer. */ footerContent?: React.ReactNode | (({ close }: { close: () => void; }) => React.JSX.Element); /** Optionally render `SideDrawer` in a mobile view only. */ onlyMobile?: boolean; /** Optionally add the `Stepper` component. */ stepperProps?: StepperProps; /** Optionally remove the gradient from the `SideDrawer`. This is useful when the background of * the content is something other than white. */ noGradient?: boolean; /** Optionally remove content padding */ noContentPadding?: boolean; /** Optionally remove footer padding */ noFooterPadding?: boolean; /** Optionally add a layer position to the drawer to allow layered drawers. The number here will * be the position in the stack of `SideDrawer` layers if there are multiple SideDrawers that * need to be displayed. NOTE: Omit this prop if there is only 1 `SideDrawer` layer. This is * important for styling. */ layerPosition?: number; /** Optionally use the confirmation header style. Note: this only applies to the header of the drawer and for styling the mobile version of the `Modal` component. */ confirmation?: ConfirmationPopoverContentProps; /** Optional prop to force the background overlay to be shown. * By default, the background overlay is displayed. However, it is * turned off for layered drawers. Setting this prop ensures that * the overlay is always shown. */ showBackgroundOverlay?: boolean; /** Optional prop to add a test id for QA testing */ qaTestId?: string; }; export type SideDrawerProps = SideDrawerWithText | SideDrawerWithLogo; export declare function SideDrawer({ children, closeCallout, containerClassName, contentClassName, footerContent, headerContent, logoUrl, isOpen, onlyMobile, size, fullWidth, stepperProps, noGradient, noContentPadding, noFooterPadding, layerPosition, confirmation, qaTestId, showBackgroundOverlay, }: SideDrawerProps): React.JSX.Element; export {};