import type { ModelDefaultsStorage } from '../storage/domains/model-defaults/base.js'; import type { FactoryProjectsStorage } from '../storage/domains/projects/base.js'; import type { WorkItemsStorage } from '../storage/domains/work-items/base.js'; import type { SourceControlSessionLookup } from './factory-session.js'; export interface DefaultModelApplicableSession { model: { switch(modelId: string): Promise; }; subagents: { model: { set(args: { modelId: string; agentType: string; }): Promise; }; }; } export interface DefaultModelHydrationSession extends DefaultModelApplicableSession { readonly identity: { getResourceId(): string; }; model: DefaultModelApplicableSession['model'] & { get(): string; setDefault(args: { modelId: string; }): void; }; state: { get(): Record | undefined; set(updates: Record): Promise; }; thread: { getId(): string | null | undefined; firstUserMessage(args: { threadId: string; }): Promise; }; } export interface DefaultModelHydrationDependencies { sourceControl: Pick; projects: Pick; workItems: Pick; modelDefaults: Pick; } /** Seed a new chat's scoped default model; a chat with a user message keeps its model. */ export declare function hydrateSessionDefaultModel(session: DefaultModelHydrationSession, { sourceControl, projects, workItems, modelDefaults }: DefaultModelHydrationDependencies): Promise; //# sourceMappingURL=default-model-hydration.d.ts.map