export interface TopBannerProps {
    /**
     * Whether the banner is visible
     */
    visible: boolean;
    /**
     * Banner message text
     */
    message: string;
    /**
     * Callback when banner is clicked. Omit for a non-interactive banner — the
     * banner then drops its `button` role and pointer affordance.
     */
    onClick?: () => void;
    /**
     * Callback when banner is dismissed. Omit to render a non-dismissible banner
     * (no close button) — e.g. a critical alert the user must not be able to hide.
     */
    onDismiss?: () => void;
    /**
     * Optional custom className
     */
    className?: string;
    /**
     * Optional custom icon
     */
    icon?: React.ReactNode;
    /**
     * Optional ARIA role for the banner wrapper. Use for a non-interactive banner
     * that should still be announced — e.g. `"alert"` for a critical warning. When
     * omitted, a clickable banner is exposed as a `button` and a non-clickable one
     * carries no role.
     */
    role?: React.AriaRole;
}
export declare const TopBanner: ({ visible, message, onClick, onDismiss, className, icon, role, }: TopBannerProps) => import("react/jsx-runtime").JSX.Element | null;
