import { ReactNode } from 'react'; import { DelayHandler } from '@befe/brick-utils'; import { ConfiguredComponent } from '@befe/brick-core'; export interface LoadingProps { /** * 自定义 class */ className?: string; /** * 显示 loading */ visible?: boolean; /** * 模式 */ mode?: 'normal' | 'modal'; /** * 动画样式 */ type?: 'spin' | 'bounce'; /** * 延迟显示,以避免闪烁,单位:毫秒 */ delay?: number; /** * 最小 loading 时间,以避免闪烁,单位:毫秒 */ minDuration?: number; /** * 自定义加载图示 */ spinner?: ReactNode; /** * 提示信息 */ message?: ReactNode; } interface LoadingState { visible: boolean; showSpinner: boolean; } export declare class Loading extends ConfiguredComponent { static displayName: string; static defaultProps: { className: string; minDuration: number; type: string; mode: string; }; static getDerivedStateFromProps(nextProps: LoadingProps): { visible: true; } | null; state: { /** * 是否处于 loading 状态 * 根据 props.minDuration 延时关闭 */ visible: boolean; /** * 是否显示 spinner * 根据 props.delay 延时显示 */ showSpinner: boolean; }; /** * spinner 开始显示的时间戳,用以计算是否 loading 显示达到 minDuration * spinner 不显示时保证为 0,在 stopSpin() 中重置为 0 */ spinnerShowStartTimestamp: number; delayShowSpinnerHandler: DelayHandler; ensureMinimumDurationHandler: DelayHandler | null; get className(): string; get delay(): number; get isModal(): boolean; get minDuration(): number; initDelayShowSpinnerHandler(): void; delayShowSpinner(): void; delayHideEnsureMinDuration(): void; startSpin(): void; stopSpin(): void; clearDelayHideLoading(): void; clearDelayShowSpinner(): void; renderSpinner(): import("react/jsx-runtime").JSX.Element; renderMessage(): false | "" | 0 | import("react/jsx-runtime").JSX.Element | null | undefined; renderLoadingContent(): import("react/jsx-runtime").JSX.Element | null; renderLoadingInner(): import("react/jsx-runtime").JSX.Element | null; renderLoading(): import("react/jsx-runtime").JSX.Element; renderModalLoading(): import("react/jsx-runtime").JSX.Element; updateLoadingState(): void; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; render(): import("react/jsx-runtime").JSX.Element; } export {};