import type { InternalOptions, UsingClient } from '../commands'; import { type If, Logger } from '../common'; import { type GatewayDispatchPayload, GatewayIntentBits } from '../types'; import type { Adapter } from './adapters'; import { Bans } from './resources/bans'; import { Channels } from './resources/channels'; import { Emojis } from './resources/emojis'; import { Guilds } from './resources/guilds'; import { Members } from './resources/members'; import { Messages } from './resources/messages'; import { Overwrites } from './resources/overwrites'; import { Presences } from './resources/presence'; import { Roles } from './resources/roles'; import { StageInstances } from './resources/stage-instances'; import { Stickers } from './resources/stickers'; import { Users } from './resources/users'; import { VoiceStates } from './resources/voice-states'; export { BaseResource } from './resources/default/base'; export { GuildBasedResource } from './resources/default/guild-based'; export { GuildRelatedResource } from './resources/default/guild-related'; export type InferAsyncCache = InternalOptions extends { asyncCache: infer P; } ? P : false; export type ReturnCache = If, T>; export type GuildBased = 'members' | 'voiceStates' | 'bans'; export type GuildRelated = 'emojis' | 'roles' | 'channels' | 'stickers' | 'presences' | 'stageInstances' | 'overwrites' | 'messages'; export type NonGuildBased = 'users' | 'guilds'; export type SeyfertBased = 'onPacket'; type ReturnManagers = { [K in NonGuildBased | GuildBased | GuildRelated]: NonNullable['get']>>>; }; export type BulkGetKey = readonly [ NonGuildBased | GuildRelated, string ] | readonly [ GuildBased, string, string ]; type BulkGetResult = Partial<{ [P in K]: ReturnManagers[P][]; }>; export * from './adapters/index'; export type CachedEvents = 'READY' | 'GUILD_CREATE' | 'GUILD_UPDATE' | 'GUILD_DELETE' | 'CHANNEL_CREATE' | 'CHANNEL_UPDATE' | 'CHANNEL_DELETE' | 'GUILD_ROLE_CREATE' | 'GUILD_ROLE_UPDATE' | 'GUILD_ROLE_DELETE' | 'GUILD_BAN_ADD' | 'GUILD_BAN_REMOVE' | 'GUILD_EMOJIS_UPDATE' | 'GUILD_STICKERS_UPDATE' | 'GUILD_MEMBER_ADD' | 'GUILD_MEMBER_UPDATE' | 'GUILD_MEMBER_REMOVE' | 'MESSAGE_CREATE' | 'PRESENCE_UPDATE' | 'THREAD_DELETE' | 'THREAD_CREATE' | 'THREAD_UPDATE' | 'USER_UPDATE' | 'VOICE_CHANNEL_STATUS_UPDATE' | 'VOICE_STATE_UPDATE' | 'STAGE_INSTANCE_CREATE' | 'STAGE_INSTANCE_UPDATE' | 'STAGE_INSTANCE_DELETE' | 'GUILD_MEMBERS_CHUNK'; export type DisabledCache = { [P in NonGuildBased | GuildBased | GuildRelated | SeyfertBased]?: boolean; }; export declare class Cache { intents: number; adapter: Adapter; users?: Users; guilds?: Guilds; members?: Members; voiceStates?: VoiceStates; overwrites?: Overwrites; roles?: Roles; emojis?: Emojis; channels?: Channels; stickers?: Stickers; presences?: Presences; stageInstances?: StageInstances; messages?: Messages; bans?: Bans; __logger__?: Logger; private pluginResourceNames; private pluginResourcePacketHandlers; private pluginResourcePacketErrorLogger?; constructor(intents: number, adapter: Adapter, disabledCache: DisabledCache, client: UsingClient); buildCache(disabledCache: DisabledCache, client: UsingClient): void; flush(): ReturnCache; hasIntent(intent: keyof typeof GatewayIntentBits): boolean; get hasGuildsIntent(): boolean; get hasRolesIntent(): boolean; get hasChannelsIntent(): boolean; get hasGuildMembersIntent(): boolean; get hasGuildExpressionsIntent(): boolean; get hasVoiceStatesIntent(): boolean; get hasPresenceUpdates(): boolean; get hasDirectMessages(): boolean; get hasModerationIntent(): boolean; bulkGet(keys: Keys): Promise>; bulkPatch(keys: (readonly [ CacheFrom, NonGuildBased, any, string ] | readonly [ CacheFrom, GuildBased | GuildRelated, any, string, string ])[]): Promise; bulkSet(keys: (readonly [ CacheFrom, NonGuildBased, any, string ] | readonly [ CacheFrom, GuildBased | GuildRelated, any, string, string ])[]): Promise; onPacket(event: GatewayDispatchPayload): Promise; private onPacketWithPluginResources; protected onPacketDefault(event: GatewayDispatchPayload): Promise; testAdapter(): Promise; private testUsersAndMembers; private testChannelsAndOverwrites; } export declare enum CacheFrom { Gateway = 1, Rest = 2, Test = 3 }