import { BaseShareType } from "../Base"; import { Color } from "../Color"; import { ColumnAggregationFunction } from "../Column"; import { Conjunction, Filter, FilterSet } from "../Filter"; import { RowData } from "../Record"; export declare class CellColorConfig { type: CellColorType; options: DuplicateOptions | DefinitionsOptions; } declare class DuplicateOptions { color: Color; } declare class DefinitionsOptions { definitions: { id: string; color: Color; conjunction: Conjunction; filterSet: FilterSet[]; }[]; } interface DateColumnsType { label: string; startColumnId: string; endColumnId: string; color: string; } export declare type ColorDefinition = { color: Color; filterSet: Filter[]; conjunction: Conjunction; id: string; }; export interface ColorConfig { colorDefinitions?: ColorDefinition[] | null; defaultColor?: Color | null; selectColumnId?: string | null; dateColumns?: DateColumnsType[]; type: "selectColumn" | "colorDefinitions" | "dateColumns" | null; } export interface ViewColumn { id: string; visibility: boolean; width: number; cellColorConfig?: CellColorConfig; } export declare enum CellColorType { HighlightRepeated = "highlightRepeated", Definitions = "definitions" } export interface GroupBy { columnId: string; ascending: boolean; id: string; } export interface ShareConfigInfo { id: string; hasPassword: boolean; options?: { allowCopy?: boolean; type?: BaseShareType; }; } export declare type Sort = GroupBy; export declare type GroupBys = GroupBy[]; export declare type Sorts = GroupBy[]; export interface FormMetaData { coverImageUrl?: string; description?: string; logoImageUrl?: string; fieldsByColumnId?: Record; } export interface FormColumnData { required?: boolean; description?: string; title?: string; useFilters?: boolean; filters?: { conjunction?: Conjunction; filterSet?: Filter[]; }; } export declare enum RowHeight { S = 32, M = 64, L = 88, XL = 120 } export declare enum RowHeightCN { S = "\u4F4E", M = "\u4E2D", L = "\u9AD8", XL = "\u8D85\u9AD8" } export interface GridMetaData { rowHeight?: RowHeight; frozenColumnCount: number; summaryBarConfigsByColumnId?: Partial>>; } export interface GanttMetaData { startColumnId: ViewColumn["id"]; endColumnId: ViewColumn["id"]; labelColumnId: ViewColumn["id"]; useMilestones: boolean; milestones: { [dateString: string]: string; }; } export interface GalleryMetaData { coverColumnId?: string; coverFitType?: "fit" | "crop"; showColumnName?: boolean; } export interface KanbanMetaData { coverColumnId?: string; coverFitType?: "fit" | "crop"; showColumnName?: boolean; } export interface CalendarMetaData { dateColumnRanges?: DateColumnRange[]; } export interface DateColumnRange { startColumnId: string; endColumnId?: string; label?: string; color?: string; } export declare type MetaData = FormMetaData | GridMetaData | GalleryMetaData | CalendarMetaData | KanbanMetaData | GanttMetaData; export interface ViewData { id: string; columns: ViewColumn[]; rows: Pick[]; colorConfig?: ColorConfig | null; groups?: GroupBys; sorts?: Sorts; filter?: { conjunction: Conjunction; items: Filter[]; }; share?: ShareConfigInfo; } export interface ViewSchema { type: ViewType; id: string; name: string; mutabilityType: ViewMutabilityType; userId?: number | null; description?: string; metadata?: MetaData; lockDetail?: { description: string; userId: number; }; } export declare const ViewTypeCn: { grid: string; form: string; gallery: string; kanban: string; gantt: string; calendar: string; }; export declare enum ViewType { Grid = "grid", Form = "form", Kanban = "kanban", Gallery = "gallery", Gantt = "gantt", Calendar = "calendar" } export declare enum ViewMutabilityType { Locked = "locked", Personal = "personal", Collaborative = "collaborative" } export {};