import type { KythiaConfig as IKythiaConfig, KythiaContainer as IKythiaContainer, KythiaClient as IKythiaClient, IAddonManager, KythiaButtonHandler, KythiaModalHandler, KythiaSelectMenuHandler, IInteractionManager, IShutdownManager, KythiaLogger, IEventManager, ITranslatorManager } from './types'; import type { KythiaModelsCollection, KythiaHelpersCollection } from './types/KythiaContainer'; import { REST, type Client } from 'discord.js'; import { QueueManager } from './managers/QueueManager'; import type { Sequelize } from 'sequelize'; import type Redis from 'ioredis'; import { KythiaEngine } from './managers/KythiaEngine'; import { MetricsManager } from './managers/MetricsManager'; declare class Kythia { kythiaConfig: IKythiaConfig; appRoot: string; client: IKythiaClient; rest: REST; models: KythiaModelsCollection; helpers: KythiaHelpersCollection; utils: Record; redis?: Redis; sequelize?: Sequelize; logger: KythiaLogger; container: IKythiaContainer; dbReadyHooks: ((container: IKythiaContainer) => void | Promise)[]; clientReadyHooks: ((container: IKythiaContainer) => void | Promise)[]; private _webhookTransport; addonManager: IAddonManager; interactionManager: IInteractionManager; eventManager: IEventManager; shutdownManager: IShutdownManager; translator: ITranslatorManager; engine: KythiaEngine; metricsManager: MetricsManager; queueManager: QueueManager; constructor({ client, config, logger, redis, sequelize, models, helpers, utils, appRoot, botVersion, bootSalt, }: { client: Client; config: IKythiaConfig; logger?: KythiaLogger; redis?: Redis; sequelize?: Sequelize; models?: KythiaModelsCollection; helpers?: Partial; utils?: Record; appRoot?: string; botVersion: string; bootSalt: number; }); private _checkRequiredConfig; registerButtonHandler(customId: string, handler: KythiaButtonHandler): void; registerModalHandler(customIdPrefix: string, handler: KythiaModalHandler): void; registerSelectMenuHandler(customIdPrefix: string, handler: KythiaSelectMenuHandler): void; private _deployCommands; private _getCommandCounts; addDbReadyHook(callback: (container: IKythiaContainer) => void | Promise): void; addClientReadyHook(callback: (container: IKythiaContainer) => void | Promise): void; private _performCriticalCleanup; private _corruptRuntimeState; private _scheduleTerminationSequence; private _flushTelemetryAndDie; private _validateConfiguration; private _performHealthCheck; private _terminateUnauthorizedProcess; start(): Promise; private _connectDatabaseWithRetry; } export default Kythia; //# sourceMappingURL=Kythia.d.ts.map