import { UserbotClient, type MessageHandler } from './client.js';
import type { DataStore } from '../data-store/index.js';
interface UserbotSession {
    characterId: string;
    phoneNumber: string;
    session: string;
    active: boolean;
    createdAt: string;
}
export declare class UserbotManager {
    private clients;
    private sessionsPath;
    private messageHandler?;
    private dataStore?;
    constructor(dataStore?: DataStore);
    setMessageHandler(handler: MessageHandler): void;
    /**
     * Login a new userbot. Requires interactive code input.
     * Returns session string for persistence.
     * Uses character-based apiCredentials from CharacterDNA when available.
     */
    login(characterId: string, phoneNumber: string, codeCallback: () => Promise<string>, passwordCallback?: () => Promise<string>): Promise<{
        sessionString: string;
    }>;
    /**
     * Reconnect all saved sessions on startup
     */
    reconnectAll(): Promise<void>;
    disconnect(characterId: string): Promise<void>;
    disconnectAll(): Promise<void>;
    getClient(characterId: string): UserbotClient | undefined;
    getActiveClients(): Map<string, UserbotClient>;
    getSessions(): Promise<UserbotSession[]>;
    private loadSessions;
    private saveSessions;
    /**
     * Load character-based API credentials from DataStore.
     * Throws a meaningful error if credentials are missing.
     */
    private getCharacterCredentials;
}
export {};
//# sourceMappingURL=manager.d.ts.map