import { OperationArguments, OperationSpec } from '@azure/core-client';
import { Middleware as MiddlewareApi, MiddlewareOptionalParams } from './apis/middleware/index.js';
/**
 * @category middleware
 */
export default class Middleware extends MiddlewareApi {
    /**
     * @param url - Url for middleware API
     * @param options - Options
     * @param options.ignoreVersion - Print warning instead of throwing exception if middleware
     * is not supported, use with caution
     * @param options.retryCount - Amount of extra requests to do in case of failure
     * @param options.retryOverallDelay - Time in ms to wait between all retries
     */
    constructor(url: string, { ignoreVersion, retryCount, retryOverallDelay, ...options }?: MiddlewareOptionalParams & {
        ignoreVersion?: boolean;
        retryCount?: number;
        retryOverallDelay?: number;
    });
    /**
     * Get a middleware response by path instead of a method name and arguments.
     * @param pathWithQuery - a path to request starting with `/v3/`
     */
    requestByPath<Response = unknown>(pathWithQuery: string): Promise<Response>;
    sendOperationRequest<T>(operationArguments: OperationArguments, operationSpec: OperationSpec): Promise<T>;
}
