import type { DesignSystemLinkHref } from "../../routing";
import type { ButtonBasicProps } from "../Button";
import { type CalloutMessageState } from "./Callout.constants";
import type { CalloutContent } from "./calloutContent";
export interface OptionalTitleProps {
    title?: string;
    hideTitle: true;
}
export interface RequiredTitleProps {
    title: string;
    hideTitle?: false;
}
type TitleProps = OptionalTitleProps | RequiredTitleProps;
type PrimaryActionProps = Pick<ButtonBasicProps, "label" | "onClick" | "disabled">;
type CalloutActionLinkProps = {
    isExternal: true;
    href: string;
    label: string;
    onClick?: () => void;
} | {
    isExternal?: false;
    href: DesignSystemLinkHref;
    label: string;
    onClick?: () => void;
};
type OutlinedMessageState = Exclude<CalloutMessageState, "upsell">;
export type StandardCalloutActions = {
    primary: PrimaryActionProps;
    link?: never;
} | {
    link: CalloutActionLinkProps;
    primary?: never;
};
export type UpsellCalloutActions = {
    primary?: PrimaryActionProps;
    link?: CalloutActionLinkProps;
};
type CalloutVariantProps = {
    type: "outlined";
    messageState: OutlinedMessageState;
    actions?: never;
} | {
    type?: "standard";
    messageState: "upsell";
    actions?: UpsellCalloutActions;
} | {
    type?: "standard";
    messageState: CalloutMessageState;
    actions?: StandardCalloutActions;
};
export type CalloutProps = TitleProps & CalloutVariantProps & {
    canClose?: boolean;
    onClose?: () => void;
    content?: CalloutContent;
};
export declare const Callout: {
    (props: CalloutProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export {};
