UNPKG

guilded.ts

Version:

A powerful NPM module that allows you to easily interact with the Guilded API.

299 lines 12.7 kB
/// <reference types="node" /> import EventEmitter from 'events'; import RESTManager from '@guildedts/rest'; import WebsocketManager from '@guildedts/ws'; import { Doc } from './Doc'; import { ListItem } from './listItem/ListItem'; import { Message } from './message/Message'; import { Server } from './server/Server'; import { ServerBan } from './server/ServerBan'; import { ServerMember } from './server/ServerMember'; import { ClientUser } from './User'; import { Webhook } from './Webhook'; import { ChannelManager } from '../managers/channel/ChannelManager'; import { GroupManager } from '../managers/group/GroupManager'; import { ServerManager } from '../managers/server/ServerManager'; import { UserManager } from '../managers/UserManager'; import { APIMessageSummary, WSEvents } from 'guilded-api-typings'; import { CalendarEvent } from './calendarEvent/CalendarEvent'; import { MessageReaction } from './message/MessageReaction'; import { Channel } from './channel/Channel'; import { Collection } from '@discordjs/collection'; import { CalendarEventRsvp } from './calendarEvent/CalendarEventRsvp'; import { ForumTopic } from './ForumTopic'; /** * The main hub for interacting with the Guilded API. * @example * const client = new Client(); * client.once('ready', () => console.log(`Logged in as ${client.user!.name}!`)); * client.login('token'); */ export declare class Client extends EventEmitter { options: ClientOptions; /** The REST manager for the Guilded API. */ readonly rest: RESTManager; /** The Websocket manager for the Guilded API. */ readonly ws: WebsocketManager; /** The manager of channels that belong to the client. */ readonly channels: ChannelManager; /** The manager of users that belong to the client. */ readonly users: UserManager; /** The manager of servers that belong to the client. */ readonly servers: ServerManager; /** The manager of groups that belong to the client. */ readonly groups: GroupManager; /** The auth token for the Guilded API. */ token?: string; /** The user the client is logged in as. */ user?: ClientUser; /** @param options The options for the client. */ constructor(options?: ClientOptions); /** The router for the Guilded REST API. */ get api(): import("@guildedts/rest").Router; /** Whether the client is ready to use. */ get isReady(): boolean; /** The date the client was ready. */ get readyAt(): Date | undefined; /** The timestamp the client was ready. */ get readyTimestamp(): number | undefined; /** The time the client has been in the ready state. */ get uptime(): number | undefined; /** * Login to the Guilded API. * @param token The auth token for the Guilded API. * @returns The client. * @example client.login('token'); */ login(token?: string): Promise<this>; /** * Disconnect from Guilded. * @returns The client. * @example client.disconnect(); */ disconnect(): this; /** * Debug the client. * @param data The debug data. * @returns The client. * @example client.debug('Hello World!'); */ debug(data?: any): this; /** @ignore */ private onWSConnect; /** @ignore */ private onWSReconnect; /** @ignore */ private onWSDisconnect; /** @ignore */ private onWSEvent; } export interface Client { /** @ignore */ on<Event extends keyof ClientEvents>(event: Event, listener: (...args: ClientEvents[Event]) => any): this; /** @ignore */ once<Event extends keyof ClientEvents>(event: Event, listener: (...args: ClientEvents[Event]) => any): this; /** @ignore */ off<Event extends keyof ClientEvents>(event: Event, listener: (...args: ClientEvents[Event]) => any): this; /** @ignore */ emit<Event extends keyof ClientEvents>(event: Event, ...args: ClientEvents[Event]): boolean; } /** The events that belong to the client. */ export interface ClientEvents { /** Emitted when the client is ready to use. */ ready: [client: Client]; /** Emitted when the client is disconnected from Guilded. */ disconnect: [client: Client]; /** Emitted when the client is reconnected to Guilded. */ reconnect: [client: Client]; /** Emitted when debug data is received. */ debug: [client: Client, data: any]; /** Emitted when the bot is added to a server. */ serverAdd: [server: Server, addedBy: ServerMember]; /** Emitted when the bot is removed from a server. */ serverRemove: [server: Server, removedBy?: ServerMember]; /** Emitted when a message is created. */ messageCreate: [message: Message]; /** Emitted when a message is edited. */ messageEdit: [newMessage: Message, oldMessage?: Message]; /** Emitted when a message is deleted. */ messageDelete: [message: Message | APIMessageSummary]; /** Emitted when a member joins a server. */ serverMemberAdd: [serverMember: ServerMember]; /** Emitted when a member leaves a server. */ serverMemberRemove: [data: WSEvents['ServerMemberRemoved'], server: Server]; /** Emitted when a member is banned from a server. */ serverMemberBan: [serverBan: ServerBan]; /** Emitted when a member is unbanned from a server. */ serverMemberUnban: [serverBan: ServerBan]; /** Emitted when a server member is edited. */ serverMemberEdit: [newServerMember: ServerMember, oldServerMember?: ServerMember]; /** Emitted when server roles are edited. */ serverRolesEdit: [ newServerMembers: Collection<string, ServerMember>, oldServerMembers: Collection<string, ServerMember> ]; /** Emitted when a channel is created. */ channelCreate: [channel: Channel]; /** Emitted when a channel is edited. */ channelEdit: [newChannel: Channel, oldChannel?: Channel]; /** Emitted when a channel is deleted. */ channelDelete: [channel: Channel]; /** Emitted when a webhook is created. */ webhookCreate: [webhook: Webhook]; /** Emitted when a webhook is edited. */ webhookEdit: [newWebhook: Webhook, oldWebhook?: Webhook]; /** Emitted when a doc is created. */ docCreate: [doc: Doc]; /** Emitted when a doc is edited. */ docEdit: [newDoc: Doc, oldDoc?: Doc]; /** Emitted when a doc is deleted. */ docDelete: [doc: Doc]; /** Emitted when a calendar event is created. */ calendarEventCreate: [event: CalendarEvent]; /** Emitted when a calendar event is edited. */ calendarEventEdit: [newCalendarEvent: CalendarEvent, oldCalendarEvent?: CalendarEvent]; /** Emitted when a calendar event is deleted. */ calendarEventDelete: [event: CalendarEvent]; /** Emitted when a forum topic is created. */ forumTopicCreate: [forumTopic: ForumTopic]; /** Emitted when a forum topic is edited. */ forumTopicEdit: [newForumTopic: ForumTopic, oldForumTopic?: ForumTopic]; /** Emitted when a forum topic is deleted. */ forumTopicDelete: [forumTopic: ForumTopic]; /** Emitted when a forum topic is pinned. */ forumTopicPin: [forumTopic: ForumTopic]; /** Emitted when a forum topic is unpinned. */ forumTopicUnpin: [forumTopic: ForumTopic]; /** Emitted when a forum topic is locked. */ forumTopicLock: [forumTopic: ForumTopic]; /** Emitted when a forum topic is unlocked. */ forumTopicUnlock: [forumTopic: ForumTopic]; /** Emitted when a calendar event RSVP is edited. */ calendarEventRsvpEdit: [ newCalendarEventRsvp: CalendarEventRsvp, oldCalendarEventRsvp?: CalendarEventRsvp ]; /** Emitted when calendar event RSVPs are edited. */ calendarEventRsvpsEdit: [ newCalendarEventRsvps: Collection<string, CalendarEventRsvp>, oldCalendarEventRsvps: Collection<string, CalendarEventRsvp> ]; /** Emitted when a calendar event RSVP is deleted. */ calendarEventRsvpDelete: [calendarEventRsvp: CalendarEventRsvp]; /** Emitted when a list item is created. */ listItemCreate: [listItem: ListItem]; /** Emitted when a list item is edited. */ listItemEdit: [newListItem: ListItem, oldListItem?: ListItem]; /** Emitted when a list item is deleted. */ listItemDelete: [listItem: ListItem]; /** Emitted when a list item is completed. */ listItemComplete: [listItem: ListItem]; /** Emitted when a list item is uncompleted. */ listItemUncomplete: [listItem: ListItem]; /** Emitted when a message reaction is added. */ messageReactionAdd: [reaction: MessageReaction]; /** Emitted when a message reaction is removed. */ messageReactionRemove: [reaction: MessageReaction]; } /** The options for the client. */ export interface ClientOptions { /** The auth token for the Guilded API. */ token?: string; /** The max retries for REST API requests. */ maxRestAPIRetries?: number; /** The retry interval for REST API requests. */ restAPIRetryInterval?: number; /** Whether to allow Websocket reconnects. */ reconnect?: boolean; /** The maximum number of Websocket reconnect attempts. */ maxReconnects?: number; /** Whether to cache messages. */ cacheMessages?: boolean; /** The max cache size for messages. */ maxMessageCache?: number; /** Whether to dispose cached messages. */ disposeCachedMessages?: boolean; /** Whether to dispose collected messages. */ disposeCollectedMessages?: boolean; /** Whether to cache server members. */ cacheServerMembers?: boolean; /** The max cache size for server members. */ maxServerMemberCache?: number; /** Whether to dispose cached server members. */ disposeCachedServerMembers?: boolean; /** Whether to cache server bans. */ cacheServerBans?: boolean; /** The max cache size for server bans. */ maxServerBanCache?: number; /** Whether to dispose cached server bans. */ disposeCachedServerBans?: boolean; /** Whether to cache server roles. */ cacheServerRoles?: boolean; /** The max cache size for server roles. */ maxServerRoleCache?: number; /** Whether to cache server member roles. */ cacheServerMemberRoles?: boolean; /** The max cache size for server member roles. */ maxServerMemberRoleCache?: number; /** Whether to cache channels. */ cacheChannels?: boolean; /** The max cache size for channels. */ maxChannelCache?: number; /** Whether to dispose cached channels. */ disposeCachedChannels?: boolean; /** Whether to cache servers. */ cacheServers?: boolean; /** The max cache size for servers. */ maxServerCache?: number; /** Whether to cache users. */ cacheUsers?: boolean; /** The max cache size for users. */ maxUserCache?: number; /** Whether to cache forum topics. */ cacheForumTopics?: boolean; /** The max cache size for forum topics. */ maxForumTopicCache?: number; /** Whether to dispose cached forum topics. */ disposeCachedForumTopics?: boolean; /** Whether to cache list items. */ cacheListItems?: boolean; /** The max cache size for list items. */ maxListItemCache?: number; /** Whether to dispose cached list items. */ disposeCachedListItems?: boolean; /** Whether to cache docs. */ cacheDocs?: boolean; /** The max cache size for docs. */ maxDocCache?: number; /** Whether to dispose cached docs. */ disposeCachedDocs?: boolean; /** Whether to cache groups. */ cacheGroups?: boolean; /** The max cache size for groups. */ maxGroupCache?: number; /** Whether to cache webhooks. */ cacheWebhooks?: boolean; /** The max cache size for webhooks. */ maxWebhookCache?: number; /** Whether to cache calendar events. */ cacheCalendarEvents?: boolean; /** The max cache size for calendar events. */ maxCalendarEventCache?: number; /** Whether to dispose cached calendar events. */ disposeCachedCalendarEvents?: boolean; /** Whether to cache calendar event RSVPs. */ cacheCalendarEventRsvps?: boolean; /** The max cache size for calendar event RSVPs. */ maxCalendarEventRsvpCache?: number; /** Whether to dispose cached calendar event RSVPs. */ disposeCachedCalendarEventRsvps?: boolean; /** Whether to cache message reactions. */ cacheMessageReactions?: boolean; /** The max cache size for message reactions. */ maxMessageReactionCache?: number; /** Whether to dispose cached message reactions. */ disposeCachedMessageReactions?: boolean; /** Whether to dispose collected message reactions. */ disposeCollectedMessageReactions?: boolean; } //# sourceMappingURL=Client.d.ts.map