import { AbsoluteLocation, HandlerOptions, MiddlewareType, Priority, RelativeLocation, Step } from "@aws-sdk/types";
export interface MiddlewareEntry extends HandlerOptions {
middleware: MiddlewareType;
}
export interface AbsoluteMiddlewareEntry
extends MiddlewareEntry,
AbsoluteLocation {
step: Step;
priority: Priority;
}
export interface RelativeMiddlewareEntry
extends MiddlewareEntry,
RelativeLocation {}
export type Normalized<
T extends MiddlewareEntry,
Input extends object = {},
Output extends object = {}
> = T & {
after: Normalized, Input, Output>[];
before: Normalized, Input, Output>[];
};
export interface NormalizedRelativeEntry extends HandlerOptions {
step: Step;
middleware: MiddlewareType;
next?: NormalizedRelativeEntry;
prev?: NormalizedRelativeEntry;
priority: null;
}
export type NamedMiddlewareEntriesMap = {
[key: string]: MiddlewareEntry;
};