import { VertexFactory } from "./util/vertex.js"; import { EdgeWrapper, Plain } from "./util/edges.js"; import { Domain } from "./properties/domain.js"; import { UserVertex } from "./users.js"; import { MessageVertex } from "./messages.js"; import { Serialized } from "./index.js"; //#region src/core/interfaces/vertices/conversations.d.ts type ShallowNullableExcept = { [P in Exclude]: T[P] | null } & Pick; type AllNullable = { [P in keyof T]: T[P] | null }; type StagedLockedTime = Pick; type StagedLunch = Pick; /** * The format in which we must send the edited course back to the client for review and creation/updating in the system. */ type StagedCourse = ShallowNullableExcept>, 'teachers' | 'locations' | 'groups'> & { events?: (Partial> | string)[]; lockedTimes?: StagedLockedTime[]; id: string; }; type StagedEvent = AllNullable>> & { lockedTimes?: StagedLockedTime[]; id: string; }; type StagedTeacher = AllNullable>> & { lockedTimes?: StagedLockedTime[]; lunch?: StagedLunch[]; id: string; }; type StagedGroup = ShallowNullableExcept>, 'members'> & { lockedTimes?: StagedLockedTime[]; lunch?: StagedLunch[]; id: string; }; type StagedLocation = AllNullable>> & { lockedTimes?: StagedLockedTime[]; id: string; }; type StagedPeriod = AllNullable>> & { id: string; }; type StagedLinkedEventsSet = Partial> & { id: string; }; type ConversationVertex = VertexFactory<'conversations', Domain & { user: EdgeWrapper<'single', Plain.Edge>; messages?: null | EdgeWrapper<'array', Plain.Edge>; title?: string; settings: { model: string; thinking: boolean; }; tokenUsage?: { promptTokens?: number; completionTokens?: number; }; active?: boolean; stagedEdits?: { add: { teachers?: StagedTeacher[]; persons?: Serialized.Person[]; courses?: StagedCourse[]; groups?: StagedGroup[]; events?: StagedEvent[]; locations?: StagedLocation[]; periods?: StagedPeriod[]; linkedEventsSets?: StagedLinkedEventsSet[]; }; edit: { teachers?: StagedTeacher[]; persons?: Serialized.Person[]; courses?: StagedCourse[]; groups?: StagedGroup[]; events?: StagedEvent[]; locations?: StagedLocation[]; periods?: StagedPeriod[]; linkedEventsSets?: StagedLinkedEventsSet[]; }; remove: { teachers?: string[]; persons?: string[]; courses?: string[]; groups?: string[]; events?: string[]; locations?: string[]; periods?: string[]; linkedEventsSets?: string[]; }; }; }>; //#endregion export { ConversationVertex }; //# sourceMappingURL=conversations.d.ts.map