seyfert
Version:
The most advanced framework for discord bots
124 lines (123 loc) • 5.04 kB
TypeScript
import { type If, Logger } from '../common';
import type { Adapter } from './adapters';
import { Guilds } from './resources/guilds';
import { Users } from './resources/users';
import type { InternalOptions, UsingClient } from '../commands';
import { type GatewayDispatchPayload, GatewayIntentBits } from '../types';
import { Bans } from './resources/bans';
import { Channels } from './resources/channels';
import { Emojis } from './resources/emojis';
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 { 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<T> = If<InferAsyncCache, Promise<T>, T>;
export type GuildBased = 'members' | 'voiceStates';
export type GuildRelated = 'emojis' | 'roles' | 'channels' | 'stickers' | 'presences' | 'stageInstances' | 'overwrites' | 'messages' | 'bans';
export type NonGuildBased = 'users' | 'guilds';
export type SeyfertBased = 'onPacket';
type ReturnManagers = {
[K in NonGuildBased | GuildBased | GuildRelated]: NonNullable<Awaited<ReturnType<NonNullable<Cache[K]>['get']>>>;
};
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_STATE_UPDATE' | 'STAGE_INSTANCE_CREATE' | 'STAGE_INSTANCE_UPDATE' | 'STAGE_INSTANCE_DELETE';
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;
constructor(intents: number, adapter: Adapter, disabledCache: DisabledCache, client: UsingClient);
buildCache(disabledCache: DisabledCache, client: UsingClient): void;
flush(): ReturnCache<void>;
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 hasPrenseceUpdates(): boolean;
get hasDirectMessages(): boolean;
get hasModerationIntent(): boolean;
bulkGet(keys: (readonly [
NonGuildBased | GuildRelated,
string
] | readonly [
GuildBased,
string,
string
])[]): Promise<Partial<{
messages: ReturnManagers['messages'][];
users: ReturnManagers['users'][];
guilds: ReturnManagers['guilds'][];
members: ReturnManagers['members'][];
voiceStates: ReturnManagers['voiceStates'][];
emojis: ReturnManagers['emojis'][];
roles: ReturnManagers['roles'][];
channels: ReturnManagers['channels'][];
stickers: ReturnManagers['stickers'][];
presences: ReturnManagers['presences'][];
stageInstances: ReturnManagers['stageInstances'][];
overwrites: ReturnManagers['overwrites'][];
bans: ReturnManagers['bans'][];
}>>;
bulkPatch(keys: (readonly [
CacheFrom,
NonGuildBased,
any,
string
] | readonly [
CacheFrom,
GuildBased | GuildRelated,
any,
string,
string
])[]): Promise<void>;
bulkSet(keys: (readonly [
CacheFrom,
NonGuildBased,
any,
string
] | readonly [
CacheFrom,
GuildBased | GuildRelated,
any,
string,
string
])[]): Promise<void>;
onPacket(event: GatewayDispatchPayload): Promise<void>;
protected onPacketDefault(event: GatewayDispatchPayload): Promise<void>;
testAdapter(): Promise<void>;
private testUsersAndMembers;
private testChannelsAndOverwrites;
}
export declare enum CacheFrom {
Gateway = 1,
Rest = 2,
Test = 3
}