import React from 'react';
import PropTypes from 'prop-types';
import BannerFoundation, { BannerAdapter } from '@douyinfe/semi-foundation/lib/es/banner/foundation';
import '@douyinfe/semi-foundation/lib/es/banner/banner.css';
import BaseComponent from '../_base/baseComponent';
export type Type = 'info' | 'danger' | 'warning' | 'success';
export interface BannerProps {
    type?: Type;
    className?: string;
    children?: React.ReactNode;
    fullMode?: boolean;
    title?: React.ReactNode;
    description?: React.ReactNode;
    icon?: React.ReactNode;
    closeIcon?: React.ReactNode;
    style?: React.CSSProperties;
    bordered?: boolean;
    onClose?(e: React.MouseEvent): void;
}
export interface BannerState {
    visible: boolean;
}
export default class Banner extends BaseComponent<BannerProps, BannerState> {
    static propTypes: {
        fullMode: PropTypes.Requireable<boolean>;
        type: PropTypes.Requireable<string>;
        title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        description: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        closeIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        style: PropTypes.Requireable<object>;
        className: PropTypes.Requireable<string>;
        onClose: PropTypes.Requireable<(...args: any[]) => any>;
        bordered: PropTypes.Requireable<boolean>;
    };
    static defaultProps: {
        onClose: () => void;
        type: string;
        fullMode: boolean;
    };
    foundation: BannerFoundation;
    constructor(props: BannerProps);
    get adapter(): BannerAdapter<BannerProps, BannerState>;
    componentDidMount(): void;
    componentWillUnmount(): void;
    remove: React.MouseEventHandler;
    renderCloser(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element;
    renderIcon(): React.JSX.Element;
    render(): React.JSX.Element;
}
