import React from 'react';
import { WaitObserverProps } from '@bluebase/components';
interface WaitObserverState {
    /**
     * Flag that tells if we have waited more time than specified in the delay prop
     */
    readonly pastDelay: boolean;
    /**
     * Flag that tells if waiting has timedout
     */
    readonly timedOut: boolean;
}
/**
 * # ⏰ WaitObserver
 *
 * This component is used to do the following:
 *
 * - WaitObserver a certain period of time before rendering a component
 * - Show timeout state, if the component is visible for a certain time period
 *
 * A use case for this can be to show a loading state after waiting a certain period
 * of time for data to load, and if the loading takes too long, show a timeout state.
 *
 * ## Usage
 * ```jsx
 * <WaitObserver
 *  delay={1000}
 *  timeout={3000}
 *  onTimeout={onTimeout}
 *  onRetry={onRetry}
 *  children={(props: WaitObserverChildrenProps) => <LoadingState {...props} />}
 * />
 * ```
 */
export declare class WaitObserver extends React.PureComponent<WaitObserverProps, WaitObserverState> {
    static defaultProps: Partial<WaitObserverProps>;
    readonly state: WaitObserverState;
    private _delay?;
    private _timeout?;
    componentWillMount(): void;
    componentWillUnmount(): void;
    render(): any;
    private init;
    private clearTimeouts;
    private retry;
}
export {};
