import type { Dialect } from 'sequelize'; import type { ActivityType } from 'discord.js'; import type { RedisOptions as IORedisOptions } from 'ioredis'; export interface KythiaConfigOwner { ids: string | string[]; names: string | string[]; ownerKey?: string; } export interface KythiaConfigSentry { dsn?: string; tracesSampleRate?: number; profilesSampleRate?: number; } export interface KythiaConfigBot { name: string; token: string; clientId: string; clientSecret?: string; totalShards: number | 'auto'; mainGuildId: string; devGuildId?: string; color: string; prefixes: string[]; status: 'online' | 'idle' | 'dnd' | 'invisible'; activityType: ActivityType; activity: string; globalCommandCooldown: number; language: string; locale: string; timezone: string; hasActivityEntryPoint?: boolean; commandPayload?: boolean; } export type KythiaRedisConfig = string | (IORedisOptions & { shard?: boolean; }); export interface KythiaConfigDb { driver: Dialect; host?: string; port?: number; name: string; user?: string; pass?: string; storagePath?: string; socketPath?: string; pool?: { max?: number; min?: number; acquire?: number; idle?: number; }; dialectOptions?: Record; timezone: string; redis?: KythiaRedisConfig; redisCacheVersion: string; ssl?: boolean; useRedis?: boolean; } export interface BaseAddonConfig { active: boolean; [key: string]: unknown; } export interface KythiaConfigAddons { [key: string]: BaseAddonConfig | undefined; } export interface KythiaConfigApiTopgg { authToken?: string; apiKey?: string; } export interface KythiaConfigApi { webhookGuildInviteLeave?: string; webhookErrorLogs?: string; topgg: KythiaConfigApiTopgg; webhookVoteLogs?: string; } export interface KythiaConfigSettings { logConsoleFilter: string; logFormat: string; supportServer: string; inviteLink: string; ownerWeb: string; kythiaWeb: string; bannerImage: string; voteBannerImage: string; gcBannerImage: string; statsBannerImage: string; helpBannerImage: string; aboutBannerImage: string; tempvoiceBannerImage: string; statusPage: string; webhookErrorLogs: boolean; webhookLogFilter?: string; webhookGuildInviteLeave: boolean; spamThreshold: number; duplicateThreshold: number; mentionThreshold: number; fastTimeWindow: number; duplicateTimeWindow: number; cacheExpirationTime: number; shortMessageThreshold: number; punishmentCooldown: number; ownerSkipCooldown: boolean; antiAllCapsMinLength: number; antiAllCapsRatio: number; antiEmojiMinTotal: number; antiEmojiRatio: number; antiZalgoMin: number; startup?: 'full' | 'minimum'; } export interface KythiaConfigEmojis { musicPlayPause: string; musicPlay: string; musicPause: string; musicSkip: string; musicStop: string; musicLoop: string; musicAutoplay: string; musicLyrics: string; musicQueue: string; musicShuffle: string; musicFilter: string; musicFavorite: string; musicBack: string; [key: string]: string; } export interface KythiaConfig { env: 'development' | 'production' | 'test' | 'local'; licenseKey: string; legal: { acceptTOS: boolean; dataCollection: boolean; }; version: string; owner: KythiaConfigOwner; sentry: KythiaConfigSentry; bot: KythiaConfigBot; db: KythiaConfigDb; addons: KythiaConfigAddons; api: KythiaConfigApi; settings: KythiaConfigSettings; emojis: KythiaConfigEmojis; } //# sourceMappingURL=KythiaConfig.d.ts.map