UNPKG

seyfert

Version:

The most advanced framework for discord bots

54 lines (53 loc) 2.44 kB
import type { CommandContext, Message } from '..'; import { type Awaitable, type DeepPartial, type If, type PickPartial } 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: If<Ready, ClientUserStructure>; options: Omit<ClientOptions, 'commands'> & { commands: NonNullable<ClientOptions['commands']>; }; memberUpdateHandler: MemberUpdateHandler; presenceUpdateHandler: PresenceUpdateHandler; collectors: Collectors; events: EventHandler; constructor(options?: ClientOptions); setServices({ gateway, ...rest }: ServicesOptions & { gateway?: ShardManager; }): void; get latency(): number; 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) => Parameters<Message['write']>[0]; reply?: (ctx: CommandContext) => boolean; }; handlePayload?: ShardManagerOptions['handlePayload']; resharding?: PickPartial<NonNullable<ShardManagerOptions['resharding']>, 'getInfo'>; }