///
import type { IconProps } from '../icon/index.js';
import { TextProps } from '../text/index.js';
import { LinkRouter, mpcTheme as mpcThemeType } from '../types/index.js';
interface DrawerItemBase {
label: string | JSX.Element;
type?: 'divider' | 'label' | 'item';
}
interface DrawerItem extends DrawerItemBase {
type?: undefined;
href?: string;
name?: string;
onClick?: (params: any) => void;
icon?: React.ElementType;
iconSuffix?: React.ElementType;
iconType?: IconProps['type'];
iconName?: IconProps['name'];
dropdown?: true | 'up' | 'right' | undefined;
links?: {
label: string | JSX.Element;
href?: string;
name?: string;
onClick?: () => void;
}[];
}
interface DrawerLinkLabel extends DrawerItemBase {
type: 'label';
labelProps: TextProps;
}
interface DrawerLinkDivider extends DrawerItemBase {
type: 'divider';
}
type DrawerItems = (DrawerItem | DrawerLinkLabel | DrawerLinkDivider)[];
export type DrawerProps = {
label?: string;
children?: React.ReactElement;
navChildren?: React.ReactElement;
active?: string;
logo?: React.ElementType;
logoHref?: string;
router?: LinkRouter;
flat?: boolean;
/** MP co theme for all states */
mpcTheme?: mpcThemeType;
iconLibrary?: IconProps['library'];
links: DrawerItems;
message?: {
label: string;
buttonText: string;
buttonHref: string;
};
footer?: {
label: string;
subLabel?: string;
image: any;
links?: {
onClick?: () => void;
label?: string;
href?: string;
icon?: React.ElementType;
type?: undefined | 'divider';
}[];
};
};
export declare const Links: ({ className, active, router, links, message, mpcTheme, iconLibrary, }: Pick & {
className?: string | undefined;
links: DrawerProps['links'];
active?: DrawerProps['active'];
router?: DrawerProps['router'];
message?: DrawerProps['message'];
mpcTheme?: DrawerProps['mpcTheme'];
}) => JSX.Element;
declare function Drawer({ flat, children, message, footer, links, logo: Logo, router, logoHref, active, mpcTheme, navChildren, }: DrawerProps): JSX.Element | null;
export default Drawer;