export type SessionStatus = 'active' | 'paused' | 'completed' | 'error' | 'archived'; export declare function buildRuntimeSessionIri(sessionId: string): string; export declare function extractRuntimeSessionId(sessionRef: string | null | undefined): string | null; export declare function extractSessionIdFromSessionRef(sessionRef: string | null | undefined): string | null; /** * Runtime / collaboration session resource. * * This preserves generic AI product runtime/session lifecycle state. * It is intentionally separate from: * - UI-only local state (focus, draft text, scroll position, expand/collapse) * - transient transport/session-manager internals * - the durable conversation timeline, which is Thread * * Storage structure: * - Location: /.data/sessions/{yyyy}/{MM}/{dd}/{id}.ttl * - Primary use: runtime lifecycle projection for a concrete Thread * * Contract notes: * - Chat identifies the counterpart/conversation object. * - Thread identifies the concrete conversation timeline/place/run. AI product * runtime sessions map to Thread; this Session resource records lifecycle state * and points to that Thread. * - Conversation topology such as direct/group is not a Session field. It is * derived from the Chat/Thread surface, participants, or product policy. Legacy * `udfs:conversationType` data should be treated as deprecated compatibility * metadata, not written by new code. * - `archived` is a persistence-layer/session-lifecycle status; interactive runtime * surfaces may continue to use the narrower active/paused/completed/error subset * until they explicitly adopt archival semantics. * - `tool` is intentionally open-string in this baseline so the durable resource does not * prematurely overfit to today's sidecar enum before all writers are aligned. */ export declare const sessionResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns; owner: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>; chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>; thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>; status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>; tool: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>; tokenUsage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>; messages: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>; policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>; policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>; metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>; createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>; updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>; archivedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>; }>>; export declare const sessionTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns; owner: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>; chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>; thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>; status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>; tool: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>; tokenUsage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>; messages: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>; policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>; policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>; metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>; createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>; updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>; archivedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>; }>>; export type SessionRow = typeof sessionResource.$inferSelect; export type SessionInsert = typeof sessionResource.$inferInsert; export type SessionUpdate = typeof sessionResource.$inferUpdate;