import type { BaseAgent, BuiltAgent, EnhancedRunner, InMemorySessionService, Session } from "@iqai/adk";
import type { Agent } from "../../../common/types";
import type { SessionState } from "../agent-loader.types";
export declare function hashState(state: SessionState | undefined): string;
export declare function getExistingSession(sessionService: InMemorySessionService, agentPath: string, sessionId: string, logger: {
    log: (...args: any[]) => void;
    warn: (...args: any[]) => void;
}): Promise<Session>;
export declare function getOrCreateSession(sessionService: InMemorySessionService, agentPath: string, agentResult: {
    agent: BaseAgent;
    builtAgent?: BuiltAgent;
}, extractInitialStateFn: (r: {
    agent: BaseAgent;
    builtAgent?: BuiltAgent;
}) => SessionState | undefined, logger: {
    log: (...args: any[]) => void;
}): Promise<Session>;
export declare function createRunnerWithSession(sessionService: InMemorySessionService, baseAgent: BaseAgent, sessionToUse: Session, agentPath: string): Promise<EnhancedRunner>;
export declare function storeLoadedAgent(sessionService: InMemorySessionService, agentPath: string, agentResult: {
    agent: BaseAgent;
    builtAgent?: BuiltAgent;
}, runner: EnhancedRunner, sessionToUse: Session, agent: Agent, setLoaded: (path: string, payload: {
    agent: BaseAgent;
    runner: EnhancedRunner;
    sessionId: string;
    userId: string;
    appName: string;
}) => void, logger: {
    log: (...args: any[]) => void;
    error: (...args: any[]) => void;
}, setBuilt?: (path: string, built: BuiltAgent) => void): Promise<void>;
export declare function clearAgentSessions(sessionService: InMemorySessionService, agentPath: string, logger: {
    log: (...args: any[]) => void;
    warn: (...args: any[]) => void;
}): Promise<void>;
//# sourceMappingURL=sessions.d.ts.map