import { InMemorySessionService } from "@iqai/adk";
import type { Agent, LoadedAgent } from "../../common/types";
export declare class AgentManager {
    private sessionService;
    private agents;
    private loadedAgents;
    private builtAgents;
    private initialStateHashes;
    private scanner;
    private loader;
    private logger;
    constructor(sessionService: InMemorySessionService, quiet?: boolean);
    getAgents(): Map<string, Agent>;
    getLoadedAgents(): Map<string, LoadedAgent>;
    scanAgents(agentsDir: string): void;
    /**
     * Start an agent, optionally restoring a previous session.
     * @param agentPath - The path to the agent
     * @param preservedSessionId - Optional session ID to restore (used during hot reload)
     * @param forceFullReload - Force cache invalidation and session reset (used when initial state changes)
     */
    startAgent(agentPath: string, preservedSessionId?: string, forceFullReload?: boolean): Promise<{
        session: string | undefined;
    } | undefined>;
    private validateAndGetAgent;
    private loadAgentModule;
    stopAgent(agentPath: string): Promise<void>;
    sendMessageToAgent(agentPath: string, message: string, attachments?: Array<{
        name: string;
        mimeType: string;
        data: string;
    }>): Promise<string>;
    /**
     * Get initial state for an agent path
     * Public method that can be called by other services
     */
    getInitialStateForAgent(agentPath: string): import("./agent-loader.types").SessionState | undefined;
    /**
     * Extract initial state from an agent result
     */
    private extractInitialState;
    /**
     * Get session info for all loaded agents before stopping
     * Used for preserving sessions during hot reload
     */
    getLoadedAgentSessions(): Map<string, string>;
    /**
     * Check if initial state has changed for any loaded agent
     * Returns true if any agent's initial state hash has changed
     */
    hasInitialStateChanged(): Promise<boolean>;
    stopAllAgents(): void;
}
//# sourceMappingURL=agent-manager.service.d.ts.map