import { HttpRequest } from "@smithy/core/protocols";
import type { AbsoluteLocation, FinalizeHandler, FinalizeRequestHandlerOptions, HandlerExecutionContext, MetadataBearer, Pluggable } from "@smithy/types";
import type { RetryResolvedConfig } from "./configurations";
/**
 * @internal
 */
export type IsStreamingPayload = (request: HttpRequest) => boolean;
/**
 * @internal
 */
export declare function bindRetryMiddleware(isStreamingPayload: IsStreamingPayload): (options: RetryResolvedConfig) => <Output extends MetadataBearer = MetadataBearer>(next: FinalizeHandler<any, Output>, context: HandlerExecutionContext) => FinalizeHandler<any, Output>;
/**
 * @internal
 */
export declare const retryMiddlewareOptions: FinalizeRequestHandlerOptions & AbsoluteLocation;
/**
 * @internal
 */
export declare function bindGetRetryPlugin(isStreamingPayload: IsStreamingPayload): (options: RetryResolvedConfig) => Pluggable<any, any>;
