import type { ApiRouteClassTypeWithGetParamsFromUrl, MaybePromise, Request, RequestWithUtcTimeInMs, Response, Trigger } from '../../types/internal';
type Action = (<RouteParams, SomeRequest extends Request, SomeResponse extends Response>(Route: ApiRouteClassTypeWithGetParamsFromUrl<RouteParams, SomeRequest, SomeResponse>, trigger: Trigger | undefined, options?: Options<RouteParams, SomeRequest>) => Return<RouteParams, SomeRequest>) & (<RouteParams, SomeRequest extends Request, SomeResponse extends Response>(Route: ApiRouteClassTypeWithGetParamsFromUrl<RouteParams, SomeRequest, SomeResponse>, options?: Options<RouteParams, SomeRequest>) => Return<RouteParams, SomeRequest>);
type Options<RouteParams, SomeRequest extends Request> = Readonly<{
    predicate?: (routeParams: RouteParams, request: RequestWithUtcTimeInMs<SomeRequest>) => MaybePromise<boolean>;
    skipLogs?: boolean;
    timeout?: number;
}>;
type Return<RouteParams, SomeRequest extends Request> = Promise<Readonly<{
    request: RequestWithUtcTimeInMs<SomeRequest>;
    routeParams: RouteParams;
}>>;
/**
 * Waits for some request (from browser) to the route filtered by route parameters predicate.
 * If the function runs longer than the specified timeout, it is rejected.
 */
export declare const waitForRequestToRoute: Action;
export {};
