import { ChannelManager, ChannelType, Collection, type APIChannel, type CategoryChannel, type Channel, type ChannelResolvable, type Message, type MessageCreateOptions, type MessagePayload, type VoiceBasedChannel } from "discord.js"; import type { ChannelTypeString, ChannelWithType } from "../@types"; export default class ChannelManagerExtension { cache: ChannelManager["cache"]; client: ChannelManager["client"]; fetch: ChannelManager["fetch"]; resolve: ChannelManager["resolve"]; resolveId: ChannelManager["resolveId"]; constructor(); /** @DJSProtofy */ getById(id: string): Channel | undefined; getById(id: string, type: T): ChannelWithType | undefined; /** @DJSProtofy */ getByName(name: string | RegExp): Channel | undefined; getByName(name: string | RegExp, type: T): ChannelWithType | undefined; /** @DJSProtofy */ getByTopic(topic: string | RegExp): Channel | undefined; getByTopic(topic: string | RegExp, type: T): ChannelWithType | undefined; /** @DJSProtofy */ getByUrl(url: string | URL): Channel | undefined; getByUrl(url: string | URL, type: T): ChannelWithType | undefined; /** @DJSProtofy */ getCategoryById(id: string): CategoryChannel; /** @DJSProtofy */ getCategoryByName(name: string | RegExp): CategoryChannel | undefined; /** @DJSProtofy */ getInShardsById(id: string): Promise; getInShardsById(id: string, allowApiChannel: true): Promise; /** @DJSProtofy */ getInShardsByName(name: string | RegExp): Promise; getInShardsByName(name: string | RegExp, allowApiChannel: true): Promise; /** @DJSProtofy */ getVoiceByUserId(id: string): VoiceBasedChannel | undefined; /** @DJSProtofy */ filterByTypes(type: T | T[]): Collection>; /** @DJSProtofy */ send(channel: ChannelResolvable, payload: T): Promise; send(channel: ChannelResolvable, payload: T): Promise; send(channel: ChannelResolvable, payload: T): Promise; send(channel: ChannelResolvable, payload: T): Promise; /** @DJSProtofy */ searchBy(query: T): Channel | undefined; searchBy(query: T): Channel | undefined; searchBy(query: T): Channel | undefined; searchBy(query: T): Channel | undefined; searchBy(query: T[]): Collection; /** @DJSProtofy */ protected _searchByMany(queries: (string | RegExp | Search)[]): this["cache"]; /** @DJSProtofy */ protected _searchByRegExp(query: RegExp): Channel; /** @DJSProtofy */ protected _searchByString(query: string): Channel; } interface Search { id?: string; name?: string | RegExp; topic?: string | RegExp; } interface Result { error?: Error; message?: Message | null; success: boolean; } export {};