export type ColumnFormat = 'text' | 'number' | 'currency' | 'date' | 'percentage' | 'image' | 'boolean' export interface Row { [key: string]: any } export interface ColumnConfig { key: string label?: string locked?: boolean format?: ColumnFormat sortable?: boolean width?: string fixed?: boolean hidden?: boolean defaultValue?: any } export interface CellPosition { row: number col: number } export interface SpreadsheetChange { type: 'cell' | 'row' | 'paste' data: { rows: Row[] selection?: { start: CellPosition, end: CellPosition } } } export interface SpreadsheetProps { modelValue: Row[] columnConfig?: ColumnConfig[] label?: string allowAddRow?: boolean }