import type { Handler, MiddlewareStack } from "./middleware"; import type { MetadataBearer } from "./response"; /** * @public */ export interface Command extends CommandIO { readonly input: InputType; readonly middlewareStack: MiddlewareStack; /** * This should be OperationSchema from @smithy/types, but would * create problems with the client transform type adaptors. */ readonly schema?: any; resolveMiddleware(stack: MiddlewareStack, configuration: ResolvedConfiguration, options: any): Handler; } /** * @internal * * This is a subset of the Command type used only to detect the i/o types. */ export interface CommandIO { readonly input: InputType; resolveMiddleware(stack: any, configuration: any, options: any): Handler; } /** * @internal */ export type GetOutputType = Command extends CommandIO ? O : never;