guilded.ts
Version:
A powerful NPM module that allows you to easily interact with the Guilded API.
87 lines • 3.52 kB
TypeScript
/// <reference types="node" />
import { Collection } from '@discordjs/collection';
import EventEmitter from 'events';
import { Base } from '../structures/Base';
import { Client } from '../structures/Client';
/**
* The collector of a data model.
* @example new Collector(client);
*/
export declare class Collector<Model extends Base<any>> extends EventEmitter {
readonly client: Client;
readonly options: CollectorOptions<Model>;
/** The collected data. */
readonly collected: Collection<Model['id'], Model>;
/** The date the collector was created. */
readonly createdAt: Date;
/** The date the collector was ended. */
endedAt?: Date;
/** The idle timeout for the collector. */
private idleTimeout?;
/**
* @param client The client the collector belongs to.
* @param options The options of the collector.
*/
constructor(client: Client, options?: CollectorOptions<Model>);
/** The timestamp the collector was created. */
get createdTimestamp(): number;
/** Whether the collector has ended. */
get isEnded(): boolean;
/** The timestamp the collector was ended. */
get endedTimestamp(): number | undefined;
/** The time the collector has been running. */
get uptime(): number;
/**
* End the collector.
* @example collector.end();
*/
end(): void;
/**
* Collect a item.
* @param item The item to collect.
* @returns The collected item.
* @example collector.collect(item);
*/
collect(item: Model): Promise<Model | undefined>;
/**
* Dispose a collected item.
* @param itemId The ID of the item to dispose.
* @returns The disposed item.
* @example collector.dispose('abc');
*/
dispose(itemId: Model['id']): Model | undefined;
}
export interface Collector<Model extends Base<any>> {
/** @ignore */
on<Event extends keyof CollectorEvents<Model>>(event: Event, listener: (...args: CollectorEvents<Model>[Event]) => any): this;
/** @ignore */
once<Event extends keyof CollectorEvents<Model>>(event: Event, listener: (...args: CollectorEvents<Model>[Event]) => any): this;
/** @ignore */
off<Event extends keyof CollectorEvents<Model>>(event: Event, listener: (...args: CollectorEvents<Model>[Event]) => any): this;
emit<Event extends keyof CollectorEvents<Model>>(event: Event, ...args: CollectorEvents<Model>[Event]): boolean;
}
/** The collector events. */
export interface CollectorEvents<Model extends Base<any>> {
/** Emitted when data is collected. */
collect: [item: Model];
/** Emitted when a collected item is disposed. */
dispose: [item: Model];
/** Emitted when the collector is finished collecting data. */
end: [collected: Collection<Model['id'], Model>];
}
/** The options for the collector. */
export interface CollectorOptions<Model extends Base<any>> {
/** The filter to apply to the collector. */
filter?: CollectorFilter<Model>;
/** The time in milliseconds to wait before ending the collector. */
time?: number;
/** The time in milliseconds to wait before ending the collector due to it being idle. */
idle?: number;
/** The max amount of items to collect. */
max?: number;
/** Whether to dispose data when it is deleted. */
dispose?: boolean;
}
/** The filter to apply to the collector. */
export declare type CollectorFilter<Model extends Base> = (item: Model) => boolean | Promise<boolean>;
//# sourceMappingURL=Collector.d.ts.map