import { Actions } from '@ng-atomic/core'; interface Message { time: Date; content?: string; role: 'assistant' | 'user' | 'system'; attachments?: Attachment[]; isWriting?: boolean; } interface Attachment { name: string; type: 'image' | 'video'; file: File; url?: string; } interface MenuItem { id: number | string; name: string; } interface Page { pageIndex: number; pageSize: number; } interface Sort { key: string; order: 'asc' | 'desc'; } interface Index { query: string; page: Page; sort: Sort; } type ColumnType = 'text' | 'actions' | 'checkbox' | 'tree'; interface BaseColumn { type: ColumnType; name?: string; visible: boolean; width: number; sort?: boolean; sticky?: boolean; stickyEnd?: boolean; stickyLeft?: number; } interface ActionsColumn extends BaseColumn { type: 'actions'; actions?: Actions; } interface TextColumn extends BaseColumn { type: 'text'; } interface CheckboxColumn extends BaseColumn { type: 'checkbox'; } interface TreeColumnMolecule extends BaseColumn { type: 'tree'; } type Column = ActionsColumn | TextColumn | CheckboxColumn | TreeColumnMolecule; export type { ActionsColumn, Attachment, BaseColumn, CheckboxColumn, Column, ColumnType, Index, MenuItem, Message, Page, Sort, TextColumn, TreeColumnMolecule };