import { Area, type IArea, type ICellAddress } from '../../treb-base-types/src/index'; /** * FIXME: this is broken. we treat this as a simple javascript object, * cloning and creating via JSON, but area is a class instance. * * that means cloned objects won't work properly (if anyone is relying on * that object). */ export interface GridSelection { /** target or main cell in the selection */ target: ICellAddress; /** selection area */ area: Area; /** there is nothing selected, even though this object exists */ empty?: boolean; /** for cacheing addtional selections. optimally don't serialize */ rendered?: boolean; } /** * temporarily splitting into a serialized version that uses IArea instead * of Area. we should do this for the actual selection type, but it breaks * too many things atm to do that immediately. TODO/FIXME. */ export interface SerializedGridSelection { /** target or main cell in the selection */ target: ICellAddress; /** selection area */ area: IArea; /** there is nothing selected, even though this object exists */ empty?: boolean; /** for cacheing addtional selections. optimally don't serialize */ rendered?: boolean; } /** * create an empty selection * @internal */ export declare const CreateSelection: () => GridSelection; /** * @internal */ export declare const CloneSelection: (rhs: GridSelection) => GridSelection;