UNPKG

galeforce-tmp-sea

Version:

A customizable, promise-based, and command-oriented TypeScript library for the Riot Games API.

31 lines 1.6 kB
import { Queue } from '../../../riot-api'; import { Constructor, Executable } from './executable'; /** * An interface containing method type signatures for any Action containing a `.queue()` method. * @template TQueue The type of the queue. Defaults to `Queue`, but should be specified. */ export interface QueueChainable<TQueue extends Queue = Queue> { queue?: <K extends QueueChainable<TQueue> & Executable>(this: K, queue: TQueue) => Omit<K, 'queue'>; } /** * A mixin for the `.queue()` method. * @template TQueue The type of the queue. 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 TakesQueue<TQueue extends Queue, TBase extends Constructor>(type: TQueue, Base: TBase): { new (...args: any[]): { /** * Modifies the **queue** associated with the Action object it is called from. * Note that associated runtime type checks are performed to ensure that * the provided queue matches one of the expected queues for the corresponding game. * @param queue The queue to update the calling Action object with. * @throws Will throw an error if an invalid queue is provided or the provided * queue fails the runtime type check. */ queue<K extends QueueChainable<TQueue> & Executable>(this: K, queue: TQueue): Omit<K, "queue">; }; } & TBase; //# sourceMappingURL=queue.d.ts.map