import type { ApiRouteClassTypeWithGetParamsFromUrl, MaybePromise, Request, Response, ResponseWithRequest, 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, SomeResponse>) => Return<RouteParams, SomeRequest, SomeResponse>) & (<RouteParams, SomeRequest extends Request, SomeResponse extends Response>(Route: ApiRouteClassTypeWithGetParamsFromUrl<RouteParams, SomeRequest, SomeResponse>, options?: Options<RouteParams, SomeRequest, SomeResponse>) => Return<RouteParams, SomeRequest, SomeResponse>);
type Options<RouteParams, SomeRequest extends Request, SomeResponse extends Response> = Readonly<{
    predicate?: (routeParams: RouteParams, response: ResponseWithRequest<SomeRequest, SomeResponse>) => MaybePromise<boolean>;
    skipLogs?: boolean;
    timeout?: number;
}>;
type Return<RouteParams, SomeRequest extends Request, SomeResponse extends Response> = Promise<Readonly<{
    response: ResponseWithRequest<SomeRequest, SomeResponse>;
    routeParams: RouteParams;
}>>;
/**
 * Waits for some response (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 waitForResponseToRoute: Action;
export {};
