import { ComponentType, HTMLAttributes, MouseEvent, ReactNode, Ref } from "react";
import { ButtonProps, ValidationStatus } from "@jpmorganchase/uitk-core";
import { LinkProps } from "../link";
import { IconProps } from "@jpmorganchase/uitk-icons";
import "./Banner.css";
export declare type BannerStatus = ValidationStatus;
export declare type LabelProps = {
className?: string;
};
declare type StateAndPropsGetterFunction = (props?: T) => TInjectedProps;
export interface GetStateAndPropGetters {
Icon: ComponentType;
getIconProps: StateAndPropsGetterFunction;
getLabelProps: StateAndPropsGetterFunction;
getLinkProps: StateAndPropsGetterFunction;
}
export interface BannerProps extends HTMLAttributes {
/**
* THe props to be passed to the close button
*/
CloseButtonProps?: ButtonProps;
/**
* Props to pass to Link, Link will not be rendered if this is undefined
*/
LinkProps?: LinkProps;
/**
* Announcement message for screen reader 250ms after the banner is mounted.
*/
announcement?: string;
/**
* close button ref
*/
closeRef?: Ref;
/**
* If true, the built-in ARIA announcer will be disabled
*/
disableAnnouncer?: boolean;
/**
* Emphasize the styling by applying a background color: defaults to false
*/
emphasize?: boolean;
/**
* onClose callback when the close icon is clicked, the dismiss button will not be rendered if this is
* not defined
*/
onClose?: (event: MouseEvent) => void;
/**
* render props callback (if children callback not supplied)
*/
render?: (props: GetStateAndPropGetters) => ReactNode;
/**
* A string to determine the current state of the Banner
*/
status?: BannerStatus;
}
export declare const Banner: import("react").ForwardRefExoticComponent>;
export {};