import type { SqliteDatabase } from '../db/adapter.js'; import { type AkinatorSessionView, type TaskProfile } from './types.js'; export interface InsertAkinatorSessionInput { readonly id: string; readonly workspace: string; readonly task: string; readonly profile: TaskProfile; readonly status: AkinatorSessionView['status']; readonly questionCount: number; readonly createdAt: string; readonly updatedAt: string; } export interface ReadAkinatorSessionInput { readonly workspace: string; readonly sessionId: string; } export interface UpdateAkinatorSessionInput { readonly workspace: string; readonly sessionId: string; readonly expectedQuestionCount: number; readonly profile: TaskProfile; readonly status: AkinatorSessionView['status']; readonly questionCount: number; readonly updatedAt: string; } export interface ReadAkinatorAnswerInput { readonly workspace: string; readonly sessionId: string; readonly questionId: keyof TaskProfile; } export interface InsertAkinatorAnswerInput extends ReadAkinatorAnswerInput { readonly answer: unknown; readonly createdAt: string; } export interface AkinatorAnswerRecord { readonly sessionId: string; readonly questionId: keyof TaskProfile; readonly answer: unknown; readonly createdAt: string; } export type AkinatorProfileSource = 'inferred' | 'client_supplied' | 'user_answer'; export type AkinatorProfileSources = Partial>; export interface InsertRunIntakeLinkInput { readonly runId: string; readonly sessionId: string; readonly workspace: string; readonly policyVersion: string; readonly profileSchemaVersion: number; readonly profileSources: AkinatorProfileSources; readonly initialProfileHash: string | null; readonly recommendedTags: string[]; readonly linkedAt: string; readonly finalizedAt: string | null; } export interface ReadRunIntakeLinkInput { readonly workspace: string; readonly runId: string; } export interface FinalizeRunIntakeLinkInput { readonly workspace: string; readonly runId: string; readonly profileHash: string; readonly recommendedTags: string[]; readonly finalizedAt: string; } export interface MarkRunIntakeProfileSourceInput { readonly workspace: string; readonly runId: string; readonly field: keyof TaskProfile; } export interface RunIntakeLinkView { readonly runId: string; readonly sessionId: string; readonly workspace: string; readonly policyVersion: string; readonly profileSchemaVersion: number; readonly profileSources: AkinatorProfileSources; readonly initialProfileHash: string | null; readonly recommendedTags: string[]; readonly linkedAt: string; readonly finalizedAt: string | null; } export declare function insertAkinatorSession(database: SqliteDatabase, value: unknown): AkinatorSessionView; export declare function readAkinatorSession(database: SqliteDatabase, value: unknown): AkinatorSessionView; export declare function updateAkinatorSession(database: SqliteDatabase, value: unknown): AkinatorSessionView; export declare function readAkinatorAnswer(database: SqliteDatabase, value: unknown): AkinatorAnswerRecord | undefined; export declare function insertAkinatorAnswer(database: SqliteDatabase, value: unknown): { replayed: boolean; answer: AkinatorAnswerRecord; }; export declare function insertRunIntakeLink(database: SqliteDatabase, value: unknown): RunIntakeLinkView; export declare function readRunIntakeLink(database: SqliteDatabase, value: unknown): RunIntakeLinkView; export declare function finalizeRunIntakeLink(database: SqliteDatabase, value: unknown): RunIntakeLinkView; /** Caller-owned primitive: mark one still-pending profile field as answered by the user. */ export declare function markRunIntakeProfileSource(database: SqliteDatabase, value: unknown): RunIntakeLinkView; //# sourceMappingURL=store.d.ts.map