UNPKG

seyfert

Version:

The most advanced framework for discord bots

60 lines (59 loc) 2.74 kB
import type { CommandContext, Message } from '..'; import { type Awaitable, type DeepPartial, type PickPartial, type When } from '../common'; import { EventHandler } from '../events'; import type { GatewayDispatchPayload, GatewayPresenceUpdateData } from '../types'; import { ShardManager, type ShardManagerOptions } from '../websocket'; import { MemberUpdateHandler } from '../websocket/discord/events/memberUpdate'; import { PresenceUpdateHandler } from '../websocket/discord/events/presenceUpdate'; import type { BaseClientOptions, ServicesOptions, StartOptions } from './base'; import { BaseClient } from './base'; import { Collectors } from './collectors'; import { type ClientUserStructure, type MessageStructure } from './transformers'; export declare class Client<Ready extends boolean = boolean> extends BaseClient { gateway: ShardManager; me: When<Ready, ClientUserStructure>; options: Omit<ClientOptions, 'commands'> & { commands: NonNullable<ClientOptions['commands']>; }; memberUpdateHandler: MemberUpdateHandler; presenceUpdateHandler: PresenceUpdateHandler; collectors: Collectors; events: EventHandler; constructor(options?: ClientOptions); get applicationId(): When<Ready, string, ''>; set applicationId(id: string); setServices({ gateway, ...rest }: ServicesOptions & { gateway?: ShardManager; }): void; get latency(): number; private onShardDisconnect; private onShardReconnect; loadEvents(dir?: string): Promise<void>; protected execute(options?: { token?: string; intents?: number; }): Promise<void>; start(options?: Omit<DeepPartial<StartOptions>, 'httpConnection'>, execute?: boolean): Promise<void>; protected onPacket(shardId: number, packet: GatewayDispatchPayload): Promise<void>; } export interface ClientOptions extends BaseClientOptions { presence?: (shardId: number) => GatewayPresenceUpdateData; shards?: { start: number; end: number; total?: number; }; gateway?: { properties?: Partial<ShardManagerOptions['properties']>; compress?: ShardManagerOptions['compress']; }; commands?: BaseClientOptions['commands'] & { prefix?: (message: MessageStructure) => Awaitable<string[]>; deferReplyResponse?: (ctx: CommandContext) => Awaitable<Parameters<Message['write']>[0]>; reply?: (ctx: CommandContext) => Awaitable<boolean>; }; handlePayload?: ShardManagerOptions['handlePayload']; onShardDisconnect?: ShardManagerOptions['onShardDisconnect']; onShardReconnect?: ShardManagerOptions['onShardReconnect']; resharding?: PickPartial<NonNullable<ShardManagerOptions['resharding']>, 'getInfo'>; }