import React from 'react';
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
import { CrossSpinnerType, ICrossSpinnerProps } from '../animations/CrossSpinner';
/**
 * Describes the props for {@link CrossBusyIndicator}
 *
 * @export
 * @interface IBusyIndicatorProps
 */
export interface IBusyIndicatorProps {
    /**
     * Determines if the indicator is visible
     *
     * @type {boolean}
     * @memberof IBusyIndicatorProps
     */
    isBusy: boolean;
    /**
     * Optional message to show while busy. Defaults to empty string.
     *
     * @type {string}
     * @memberof IBusyIndicatorProps
     */
    message?: string | undefined;
    /**
     * Type of spinner to use
     *
     * @type {CrossSpinnerType}
     * @memberof IBusyIndicatorProps
     */
    type?: CrossSpinnerType | undefined;
    /**
     * Optional test id to assign this component. Default is "1"
     *
     * @type {string}
     * @memberof IBusyIndicatorProps
     */
    testID?: string | undefined;
    /**
     * Determines if the modal is cancellable. Otherwise visibility is controlled by {@link isBusy}
     */
    isCancelButtonVisible: boolean;
    /**
     * Optional callback for user cancel event.
     */
    onCancel?: () => void;
    /**
     * Text for cancel button. Default is "Cancel"
     */
    cancelText?: string | undefined;
    /**
     * Optional custom style for the {@link cancelText}
     */
    cancelTextStyle?: StyleProp<TextStyle> | undefined;
    /**
     * Optional custom style for the modal view
     */
    modalStyle?: StyleProp<ViewStyle> | undefined;
    /**
     * Optional custom style for the inner view, contained in the modal
     */
    innerViewStyle?: StyleProp<ViewStyle> | undefined;
    /**
     * Optional custom style for the {@link message}
     */
    messageStyle?: StyleProp<TextStyle> | undefined;
    /**
     * Optional properties to configure the spinner
     *
     * See {@link ICrossSpinnerProps}
     */
    spinnerProps?: ICrossSpinnerProps | undefined;
}
/**
 * @description
 * Displays a modal with busy indicator (spinner) and message when {@link IBusyIndicatorProps.isBusy} is `true`
 *
 * Properties are {@link IBusyIndicatorProps}
 *
 * Also supports cancelling the modal using properties
 * {@link IBusyIndicatorProps.isCancelButtonVisible},
 * {@link IBusyIndicatorProps.cancelText} and
 * {@link IBusyIndicatorProps.onCancel}.
 * This does however not hide the modal.
 *
 * Modal with cancel
 * @example
 *
 ```
  <CrossBusyIndicator
          key="busy1"
          testID="busy1"
          isBusy={this.state.isBusy}
          type={CrossSpinnerType.PacmanIndicator}
          isCancelButtonVisible={true}
          message="Loading.."
          onCancel={() => this.setState({ isBusy: false })}
        />
```
* Non cancellable and custom styles
* @example
```
        <CrossBusyIndicator
          key="busy2"
          testID="busy2"
          spinnerProps={{
            color: 'red',
            type: CrossSpinnerType.WaveIndicator
          }}
          messageStyle={{color: 'red'}}
          isBusy={this.state.isBusy2}
          isCancelButtonVisible={false}
          message="Resistance is futile"
        />
```
 */
export declare class CrossBusyIndicator extends React.Component<IBusyIndicatorProps> {
    constructor(props: IBusyIndicatorProps);
    onCancel(): void;
    render(): JSX.Element;
}
export default CrossBusyIndicator;
//# sourceMappingURL=CrossBusyIndicator.d.ts.map