declare enum RelationType { parent_child = "pc", peer = "pr", child_parent = "cp", cloned_from = "cf", cloned_to = "ct", cloned_from_template = "cft", cloned_to_template = "ctt", linked_to = "lt", linked_from = "lf", linked_to_template = "ltt", linked_from_template = "lft", references = "r", referenced_by = "rb" } type Api = { id: string; name: string; owner?: Owner; url: string; method: string; body: string; headers: string; params: string; streaming?: boolean; frequency?: number; transform: (data: T) => R; } & Transaction; type CompositeApi = { id: string; name: string; owner?: Owner; apis: Api[]; transform: (data: T) => R; } & Transaction; declare const RELATION_TYPES: RelationType[]; type CAudit = { created_at: number; created_by: string; }; declare enum Owner { org = "o", workspace = "w", project = "p", spreadsheet = "s" } declare const OWNER: Owner[]; type Audit = CAudit & { updated_at?: number; updated_by?: string; deleted_at?: number; deleted_by?: string; }; type Comment = { id: string; content: string; }; type Tag = { id: string; name: string; } & Audit; type Transaction = { id: string; comments?: Comment[]; tags?: Tag[]; owner?: Owner; } & Audit; type Relation = Transaction & { UUID1: string; UUID2: string; relation: RelationType; }; type LOV = { id: string; name: string; owner?: Owner; renderer?: object; css?: string; allow_multiple?: boolean; allow_null?: boolean; allow_add_new?: boolean; } & Transaction; type LOV_VALUES = { id: string; value: string; lov_id: string; renderer?: object; css?: string; } & Transaction; type ForeignKey = { table_id: string; columns: [ { column_id: string; foreign_column_id: string; } ]; }; type PrimaryKey = { column_id: string; }; declare enum CellRender { text = "text", number = "number", date = "date", time = "time", datetime = "datetime", daterange = "daterange", timerange = "timerange", boolean = "boolean", checkbox = "checkbox", select = "select", multi_select = "multi_select", link = "link", image = "image", file = "file", color = "color", formula = "formula", rich_text = "rich_text", code = "code" } declare enum TableView { table = "table", form = "form", kanban = "kanban", list = "list", calendar = "calendar", gantt = "gantt", timeline = "timeline", pivot = "pivot", chart = "chart", map = "map", report = "report", dashboard = "dashboard" } type Table = { id: string; name: string; mmn: string; owner?: Owner; foreign_keys?: ForeignKey[]; primary_key?: PrimaryKey[]; comments?: Comment[]; views?: TableView[]; tags?: Tag[]; readonly?: boolean; API?: string; } & Transaction; declare enum Aggregation { sum = "sum", avg = "avg", min = "min", max = "max", count = "count", distinct = "distinct", custom = "custom" } declare const AGGREGATIONS: Aggregation[]; type TableColumn = { id: string; table_id: string; lov_id: string; pos: number; name: string; render: CellRender; css: string; dimension?: boolean; value?: boolean; formula?: string; required?: boolean; aggregation?: Aggregation[]; is_primary_key: boolean; is_nullable: boolean; is_unique: boolean; foreign_key_table_id: string; foreign_key_column_id: string; comments?: Comment[]; tags?: Tag[]; } & Transaction; type RowColumnValue = { row_id: string; row_no?: number; col_no?: number; col_id: string; value: string; col_span: number[]; row_span: number[]; } & Transaction; type SpreadSheet = { id: string; name: string; owner?: Owner; tables: Table[]; } & Transaction; type SpreadColumn = { render: CellRender; css: string; invalid?: object; } & TableColumn; export { AGGREGATIONS, Aggregation, type Api, type Audit, type CAudit, CellRender, type Comment, type CompositeApi, type ForeignKey, type LOV, type LOV_VALUES, OWNER, Owner, type PrimaryKey, RELATION_TYPES, type Relation, RelationType, type RowColumnValue, type SpreadColumn, type SpreadSheet, type Table, type TableColumn, TableView, type Tag, type Transaction };