import React from 'react';
import type { ButtonProps } from '../UIButton';
import type { UILoadButtonBusyProps } from './UITranslationButton.types';
import './UILoadButton.scss';
export interface UILoadButtonState {
    busy?: boolean;
}
type UILoadButtonProps = ButtonProps & UILoadButtonBusyProps;
/**
 * Component to render load button with spin indicator.
 */
export declare class UILoadButton extends React.Component<UILoadButtonProps, UILoadButtonState> {
    private minLoaderTimer;
    /**
     * Constructor method for load button.
     *
     * @param props Component properties.
     */
    constructor(props: UILoadButtonProps);
    /**
     * Method handles component update to refresh busy state.
     *
     * @param prevProps Component previous properties.
     */
    componentDidUpdate(prevProps: UILoadButtonProps): void;
    componentWillUnmount(): void;
    /**
     * Method handles end of minimal waiting time.
     */
    private handleMinWaitingTime;
    /**
     * Method returns latest busy state by checking current state and props.
     *
     * @param props Current props.
     * @param state Current state.
     * @returns Busy state.
     */
    private getBusyState;
    /**
     * Method returns minimal waiting time for loader depending on passed 'useMinWaitingTime' property.
     *
     * @returns Minimal waiting time for busy loader.
     */
    private getMinimalWaitingTime;
    /**
     * Method to render load button component.
     *
     * @returns Load button component.
     */
    render(): React.ReactElement;
}
export {};
//# sourceMappingURL=UILoadButton.d.ts.map