import type { Action } from 'redux';
import type { ThunkDispatch } from 'redux-thunk';
import type { RootState } from '../store';
import type { WaitActionArgs } from '../store/middleware/waitUntilAction';
export declare function waitUntil({ predicate, run }: WaitActionArgs): {
    type: string;
    predicate: (action: import("redux").AnyAction) => boolean;
    run: (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => any, action: import("redux").AnyAction) => void;
};
export declare function waitUntilWithTimeout<T>(dispatch: ThunkDispatch<RootState, {}, Action>, waitActionArgs: (resolve: (value?: T) => void) => WaitActionArgs, timeout?: number): Promise<T | null | undefined>;
