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; };