import type { KeepAliveOptions, ExtendedServiceClientOptions } from "@azure/core-http-compat";
import { CompatResponse as HttpOperationResponse, RequestPolicy as IHttpClient, HttpHeadersLike as HttpHeaders, RequestPolicy, RequestPolicyFactory, RequestPolicyOptionsLike as RequestPolicyOptions, WebResourceLike as WebResource } from "@azure/core-http-compat";
import type { ProxySettings as ProxyOptions, UserAgentPolicyOptions as UserAgentOptions } from "@azure/core-rest-pipeline";
import { RequestBodyType as HttpRequestBody } from "@azure/core-rest-pipeline";
import type { TokenCredential } from "@azure/core-auth";
import type { StorageRetryOptions } from "@azure/storage-blob";
import { StorageSharedKeyCredential } from "./credentials/StorageSharedKeyCredential.js";
import { AnonymousCredential } from "@azure/storage-blob";
import { StorageOAuthScopes } from "./utils/constants.js";
import { ServiceClientOptions, PipelineOptions, PipelineLike, isPipelineLike, Pipeline } from "@azure/storage-blob";
export { StorageOAuthScopes, IHttpClient, HttpHeaders, HttpRequestBody, HttpOperationResponse, WebResource, RequestPolicyFactory, RequestPolicy, RequestPolicyOptions, ServiceClientOptions, PipelineOptions, PipelineLike, Pipeline, isPipelineLike, };
/**
 * Options interface for the {@link newPipeline} function.
 */
export interface StoragePipelineOptions {
    /**
     * Options to configure a proxy for outgoing requests.
     */
    proxyOptions?: ProxyOptions;
    /**
     * Options for adding user agent details to outgoing requests.
     */
    userAgentOptions?: UserAgentOptions;
    /**
     * Configures the built-in retry policy behavior.
     */
    retryOptions?: StorageRetryOptions;
    /**
     * Keep alive configurations. Default keep-alive is enabled.
     */
    keepAliveOptions?: KeepAliveOptions;
    /**
     * Configures the HTTP client to send requests and receive responses.
     */
    httpClient?: IHttpClient;
    /**
     * The audience used to retrieve an AAD token.
     * By default, audience 'https://storage.azure.com/.default' will be used.
     */
    audience?: string;
}
/**
 * Creates a new Pipeline object with Credential provided.
 *
 * @param credential -  Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.
 * @param pipelineOptions - Optional. Options.
 * @returns A new Pipeline object.
 */
export declare function newPipeline(credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, pipelineOptions?: StoragePipelineOptions): Pipeline;
export declare function getCoreClientOptions(pipeline: PipelineLike): ExtendedServiceClientOptions;
export declare function getCredentialFromPipeline(pipeline: PipelineLike): StorageSharedKeyCredential | AnonymousCredential | TokenCredential;
//# sourceMappingURL=Pipeline.d.ts.map