import { AbsoluteLocation, HandlerOptions, MiddlewareType, Priority, RelativeLocation, Step } from "@smithy/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, 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 = Record>;