import { InjectionToken, Provider } from '@angular/core';
import { OpenApiRemoteMethodParameter } from '@rxap/open-api/remote-method';
import { Method, MethodWithParameters } from '@rxap/pattern';
import { Constructor } from '@rxap/utilities';
export declare function ProvideMethodMock<ReturnValue, Parameters>(method: InjectionToken<Method<ReturnValue, Parameters>> | Constructor<Method<ReturnValue, Parameters>>, implementation?: (parameters?: Parameters, ...args: any[]) => ReturnValue | Promise<ReturnValue>, delay?: number): Provider;
export declare function ProvideMethodWithParametersMock<ReturnValue, Parameters>(method: InjectionToken<MethodWithParameters<ReturnValue, Parameters>> | Constructor<MethodWithParameters<ReturnValue, Parameters>>, implementation: (parameters: Parameters, ...args: any[]) => ReturnValue | Promise<ReturnValue>, delay?: number, defaultParameters?: Parameters): Provider;
export declare function ProvideRemoteMethodMock<ReturnValue, Parameters extends Record<string, any> | void, RequestBody>(method: InjectionToken<MethodWithParameters<ReturnValue, OpenApiRemoteMethodParameter<Parameters, RequestBody>>> | Constructor<MethodWithParameters<ReturnValue, OpenApiRemoteMethodParameter<Parameters, RequestBody>>>, implementation: (parameters: OpenApiRemoteMethodParameter<Parameters, RequestBody>, ...args: any[]) => ReturnValue | Promise<ReturnValue>, delay?: number): Provider;
