/**
 * SessionHydrator — read persisted per-session config and push it into the
 * in-memory runtime (AgentManager + ModelManager).
 *
 * These three operations were three sibling private methods on `AgentService`
 * with subtly different signatures. They are the mirror image of
 * {@link SessionConfigService} — the latter writes user choices into the
 * config store, this hydrator reads them back out before a turn runs.
 *
 *   - `workspace()`  — apply persisted `workingDirectoryOverride` to AgentManager
 *                       and ensure the directory exists on disk
 *   - `model()`      — apply persisted `modelOverride` via ModelManager
 *   - `thinking()`   — resolve effective thinking level (request override >
 *                       per-session override > agent default) and apply
 */
import type { Config } from '../../config/schema.js';
import { type SessionConfigStore } from '../../session/index.js';
import type { AgentInstanceGateway } from '../agent-instance-gateway.js';
import type { ModelManager } from '../models/index.js';
export interface SessionHydratorOptions {
    sessionConfigStore: SessionConfigStore;
    agentManager: AgentInstanceGateway;
    modelManager: ModelManager;
    /** Effective config snapshot accessor (honours runtime overrides). */
    getConfig: () => Config | undefined;
}
export declare class SessionHydrator {
    private readonly opts;
    constructor(opts: SessionHydratorOptions);
    /**
     * Load persisted workingDirectory override into AgentManager and `mkdir -p`
     * the effective workspace path. Safe to call before `getOrCreateAgent`.
     */
    workspace(sessionKey: string): Promise<void>;
    /** Apply persisted `modelOverride` to ModelManager (no-op when none stored). */
    model(sessionKey: string): Promise<void>;
    /**
     * Resolve the effective thinking level (request override > per-session
     * override > agent default) and apply it to the live agent instance.
     */
    thinking(sessionKey: string, requestOverride?: string | null): Promise<void>;
}
