import type { Ref, MouseEventHandler } from 'react';
import type { HeadingTag, NoChildrenProp, TestIdProp, WithAttributes } from '../../types';
export interface BannerHandleValue {
    /** Used to apply focus to the banner via an imperative handle. */
    focus: () => void;
}
type Label = string | {
    text: string;
    onClick?: MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
    href?: string;
};
export interface BannerMessage {
    label: Label | Label[];
    description?: string;
    action?: {
        text: string;
        onClick?: MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
        href?: string;
    };
    items?: (BannerMessage | string)[];
}
export type BannerProps = WithAttributes<'div', TestIdProp & NoChildrenProp & {
    /** Controls the styling of the Banner. */
    variant: 'urgent' | 'warning' | 'success' | 'info' | 'ai';
    /** Custom heading text. Default varies by variant. */
    headingText?: string;
    /**
     * The heading tag to render the provided heading as. This is agnostic to the styling of the heading.
     * @default 'h2'
     */
    headingTag?: HeadingTag;
    /** Pass one or more descriptive messages to inform the user. */
    messages: (string | BannerMessage)[];
    /** Callback when user explicitly dismisses the Banner. */
    onDismiss?: MouseEventHandler;
    /** Ref that can be used to access the imperative handle. */
    handle?: Ref<BannerHandleValue>;
}>;
export declare const StyledBanner: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
    headingTag: BannerProps["headingTag"];
}, never>;
export declare const StyledBannerStatus: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, Pick<BannerProps, "variant">, never>;
export declare const StyledBannerHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
export declare const StyledBannerContent: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
    expandable?: boolean;
}, never>;
export declare const StyledBannerMessageList: import("styled-components").StyledComponent<import("../../types").ForwardRefForwardPropsComponent<import("../List").UnorderedListProps>, import("styled-components").DefaultTheme, {}, never>;
export declare const StyledBannerMessage: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
declare const _default: import("react").ForwardRefExoticComponent<Omit<BannerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
    getTestIds: (testIdProp?: TestIdProp["testId"]) => import("../../types").TestIdsRecord<readonly ["heading", "expand-collapse", "dismiss", "message-label", "message-description", "message-action"]>;
};
export default _default;
//# sourceMappingURL=Banner.d.ts.map