import type { CreateSessionOptions, SendTurnInput, SendTurnOptions } from "#client/types.js";
import type { Client } from "#client/client.js";
import { AssertionCollector } from "#evals/assertions/collector.js";
import { EvalSessionDriver, type EvalSessionStartedEvent } from "#evals/session.js";
import type { EveEvalLiveTurn, EveEvalSessionResult } from "#evals/types.js";
export declare class EvalSessionManager {
    #private;
    constructor(input: {
        readonly client: Client;
        readonly collector?: AssertionCollector;
        readonly onSessionStart?: (event: EvalSessionStartedEvent) => void;
        readonly signal?: AbortSignal;
    });
    session(options?: CreateSessionOptions): Promise<EvalSessionDriver>;
    send(message: SendTurnInput["message"], options?: SendTurnOptions): Promise<import("#evals/types.js").EveEvalTurn>;
    attachSession(sessionId: string, options?: {
        readonly startIndex?: number;
    }): Promise<EvalSessionDriver>;
    watchTurn(sessionId: string, options?: {
        readonly startIndex?: number;
    }): EveEvalLiveTurn;
    snapshots(): readonly EveEvalSessionResult[];
    lastTurnSession(): EvalSessionDriver | undefined;
    hasActivity(): boolean;
    /** @internal */
    cleanup(signal: AbortSignal): Promise<readonly PromiseSettledResult<void>[]>;
}
