import type { Command } from "../command"; import type { MetadataBearer } from "../response"; import type { StreamingBlobPayloadOutputTypes } from "../streaming-payload/streaming-blob-payload-output-types"; import type { Transform } from "./type-transform"; /** * @internal * * Narrowed version of InvokeFunction used in Client::send. */ export interface NarrowedInvokeFunction { (command: Command, options?: HttpHandlerOptions): Promise>; (command: Command, cb: (err: unknown, data?: Transform) => void): void; (command: Command, options: HttpHandlerOptions, cb: (err: unknown, data?: Transform) => void): void; (command: Command, options?: HttpHandlerOptions, cb?: (err: unknown, data?: Transform) => void): Promise> | void; } /** * @internal * * Narrowed version of InvokeMethod used in aggregated Client methods. */ export interface NarrowedInvokeMethod { (input: InputType, options?: HttpHandlerOptions): Promise>; (input: InputType, cb: (err: unknown, data?: Transform) => void): void; (input: InputType, options: HttpHandlerOptions, cb: (err: unknown, data?: Transform) => void): void; (input: InputType, options?: HttpHandlerOptions, cb?: (err: unknown, data?: OutputType) => void): Promise> | void; }