export type CellStyleSnapshot = { font?: { name?: string; size?: number; bold?: boolean; italic?: boolean; color?: string; }; alignment?: { horizontal?: string; vertical?: string; wrapText?: boolean; }; fill?: { type?: string; color?: string; }; }; export type Segment = { id: string; source: string; target?: string; start?: number; end?: number; meta?: { [k: string]: any; }; }; export type TranslationUnit = { id: string; sheetName: string; row: number; col: string; colIndex: number; source: string; segments?: Segment[]; richText?: boolean; style?: CellStyleSnapshot; formula?: string | null; isMerged?: boolean; mergedRange?: string | null; meta?: { [k: string]: any; }; }; export type SheetConfig = { namePattern: string; sourceColumns: string[]; targetColumns?: { [locale: string]: string | ""; }; createTargetIfMissing?: boolean; headerRow?: number; valuesStartRow?: number; skipHiddenRows?: boolean; skipHiddenColumns?: boolean; excludeColors?: string[]; extractFormulaResults?: boolean; preserveStyles?: boolean; translateComments?: boolean; treatMergedRegions?: "top-left" | "expand" | "skip"; maxCharsPerTarget?: { [locale: string]: number; }; metadataRows?: number[]; excludedRows?: number[]; excludedColumns?: string[]; inlineCodeRegexes?: string[]; sourceLocale?: string; html?: { enabled?: boolean; translatableTags?: string[]; }; }; export type WorkbookConfig = { sheets: SheetConfig[]; }; export type SegConfig = { enabled?: boolean; rules?: "builtin" | { srxPath: string; }; }; export type GlobalConfig = { overwrite?: boolean; insertTargetPlacement?: "insertAfterSource" | "appendToSheetEnd"; srcLang?: string; targetLocale?: string; exportComments?: boolean; mergeFallback?: 'source' | 'empty'; xliffVersion?: '1.2' | '2.1'; }; export type Config = { workbook: WorkbookConfig; segmentation?: SegConfig; global?: GlobalConfig; };