import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Props as SpinnerProps } from '../spinner';
declare type SpinnerSize = SpinnerProps['size'];
interface Props {
    spinning: boolean;
    fullScreen: boolean;
    spinner: React.ReactElement;
    size: SpinnerSize;
    tip: string;
    wrapperClassName: string;
    transition: boolean;
    delay: number;
}
interface State {
    spinning: boolean;
}
declare class Spin extends Component<Props, State> {
    static propTypes: {
        spinning: PropTypes.Validator<boolean>;
        fullScreen: PropTypes.Requireable<boolean>;
        size: PropTypes.Requireable<string>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        spinner: PropTypes.Requireable<PropTypes.ReactElementLike>;
        tip: PropTypes.Requireable<string>;
        wrapperClassName: PropTypes.Requireable<string>;
        transition: PropTypes.Requireable<boolean>;
        delay: PropTypes.Requireable<number>;
    };
    static defaultProps: {
        fullScreen: boolean;
        size: string;
        tip: string;
        wrapperClassName: string;
        transition: boolean;
        delay: number;
        spinner: JSX.Element;
    };
    constructor(props: Props);
    componentDidMount(): void;
    /**
     * antd Spin组件每次didupdate中 取消防抖updateSpinning函数的执行 随后重新创建防抖updateSpinning函数进行执行
     * 未直接使用 didmount 中创建的防抖updateSpinning函数 的防抖特性 可参见antd源码3.20.5
     * 此处进行优化： 利用防抖函数特性，无需重复取消创建防抖updateSpinning函数
     */
    componentDidUpdate(): void;
    /**
     * 避免组件卸载后 spinning状态变化而setState报错
     * 参考antd，相关issue https://github.com/ant-design/ant-design/pull/16081
     */
    componentWillUnmount(): void;
    debouncifyUpdateSpinning: (props: Props) => void;
    updateSpinning: () => void;
    cancelExistingSpin(): void;
    getSpinElement(): JSX.Element | null;
    render(): JSX.Element;
}
export default Spin;
