import type { FastifyInstance } from 'fastify';
import { DataStore } from './modules/data-store/index.js';
import { EncryptedKeyStore } from './modules/data-store/encryption.js';
import { PriorityQueue } from './modules/queue-system/index.js';
import { QueuePersistence } from './modules/queue-system/persistence.js';
import { RateLimiter } from './modules/queue-system/rate-limiter.js';
import { CharacterEngine } from './modules/character-engine/index.js';
import { OpenRouterClient } from './modules/openrouter/client.js';
import { ConversationEngine } from './modules/conversation-engine/index.js';
import type { TimerConfig } from './modules/timer-system/index.js';
import { ImageEngine } from './modules/image-engine/index.js';
import { TelegramManager } from './modules/telegram-manager/index.js';
import { TranslationModule } from './modules/translation/index.js';
import { AnalyticsEngine } from './modules/analytics/index.js';
import { AutomationManager } from './modules/automation/index.js';
import { UserbotManager } from './modules/userbot/index.js';
import { NotificationService } from './modules/notification/index.js';
export interface AppModules {
    dataStore: DataStore;
    encryptedStore: EncryptedKeyStore;
    queue: PriorityQueue;
    queuePersistence: QueuePersistence;
    rateLimiter: RateLimiter;
    characterEngine: CharacterEngine;
    openRouterClient: OpenRouterClient;
    conversationEngine: ConversationEngine;
    timerConfig: TimerConfig;
    imageEngine: ImageEngine;
    telegramManager: TelegramManager;
    translationModule: TranslationModule;
    analyticsEngine: AnalyticsEngine;
    automationManager: AutomationManager;
    userbotManager: UserbotManager;
    notificationService: NotificationService;
}
export declare function createAppModules(): Promise<AppModules>;
export declare function registerRoutes(app: FastifyInstance, modules: AppModules): Promise<void>;
export declare function wireHandlers(modules: AppModules): void;
export declare function registerBotHandlers(botToken: string, characterId: string, modules: AppModules): void;
export declare function wireBotHandlers(modules: AppModules): Promise<void>;
//# sourceMappingURL=wiring.d.ts.map