/**
 * Abstract storage for column configuration (visibility + order).
 * Current implementation is in-memory. Replace with a DB-backed
 * service when persistence is needed.
 */
export interface ColumnConfigState {
  /** Ordered list of column IDs as the user arranged them */
  columnOrder: string[];
  /** Map of column ID → visible (true/false) */
  columnVisibility: Record<string, boolean>;
}

export abstract class ColumnConfigStorage {
  abstract load(gridId: string): ColumnConfigState | null;
  abstract save(gridId: string, state: ColumnConfigState): void;
}
