import { ReactNode } from 'react'; import { BaseProps } from '../../types.js'; import '@emotion/react'; interface PageBannerBase extends BaseProps { variant?: "default" | "critical" | "warning" | "information"; text: string | ReactNode; icon?: boolean; } interface PageBannerNoAction extends PageBannerBase { action?: never; buttonText?: never; primaryButtonText?: never; secondaryButtonText?: never; onClick?: never; onClickPrimary?: never; onClickSecondary?: never; } interface PageBannerActionPrimary extends PageBannerBase { action: "primary"; buttonText: string; primaryButtonText?: never; secondaryButtonText?: never; onClick: VoidFunction; onClickPrimary?: never; onClickSecondary?: never; } interface PageBannerActionPrimarySecondary extends PageBannerBase { action: "primary+secondary"; buttonText?: never; primaryButtonText: string; secondaryButtonText: string; onClick?: never; onClickPrimary: VoidFunction; onClickSecondary: VoidFunction; } interface PageBannerActionDismissible extends PageBannerBase { action: "dismissible"; buttonText?: never; primaryButtonText?: never; secondaryButtonText?: never; onClick: VoidFunction; onClickPrimary?: never; onClickSecondary?: never; } type PageBannerProps = PageBannerActionPrimary | PageBannerActionPrimarySecondary | PageBannerActionDismissible | PageBannerNoAction; export { PageBannerProps };