import React from 'react';
import { StepperProps } from '../Stepper/Stepper';
type SideDrawerWithText = SideDrawerBase & {
    /** The text to be rendered within the header. */
    headerContent: string;
    logoUrl?: never;
};
type SideDrawerWithLogo = SideDrawerBase & {
    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;
    }) => JSX.Element);
    /** The open state of SideDrawer. */
    isOpen: boolean;
    /** Callout function to close the SideDrawer. */
    closeCallout: React.MouseEventHandler<HTMLButtonElement> & (() => 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;
    }) => JSX.Element);
    /** Optionally render SideDrawer in a mobile view only. */
    onlyMobile?: boolean;
    /** Size of the drawer */
    size?: 'sm' | 'md' | 'lg';
    /** 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;
};
export type SideDrawerProps = SideDrawerWithText | SideDrawerWithLogo;
export declare function SideDrawer({ children, closeCallout, containerClassName, contentClassName, footerContent, headerContent, logoUrl, isOpen, onlyMobile, size, stepperProps, noGradient, noContentPadding, noFooterPadding, layerPosition, }: SideDrawerProps): JSX.Element;
export {};
