galeforce-tmp-sea
Version:
A customizable, promise-based, and command-oriented TypeScript library for the Riot Games API.
26 lines • 1.25 kB
TypeScript
import { Constructor, Executable } from './executable';
/**
* An interface containing method type signatures for any Action containing a `.body()` method.
* @template TBody The type of the request body. Defaults to `object`, but may be specified.
*/
export interface BodyChainable<TBody extends object = object> {
body?: <K extends BodyChainable<TBody> & Executable>(this: K, body: TBody) => Omit<K, 'body'>;
}
/**
* A mixin for the `.body()` method.
* @template TBody The type of the request body. Specified by the type of the `type` parameter.
* @template TBase The type of the object inside.
* @param type A dummy parameter to allow for type inference. Use by passing in `<T>{}` or
* an expression of that form.
* @param Base The target class.
*/
export declare function TakesBody<TBody extends object, TBase extends Constructor>(type: TBody, Base: TBase): {
new (...args: any[]): {
/**
* Modifies the **body** associated with the Action object it is called from.
* @param body The request body to update the calling Action object with.
*/
body<K extends BodyChainable<TBody> & Executable>(this: K, body: TBody): Omit<K, "body">;
};
} & TBase;
//# sourceMappingURL=body.d.ts.map