import { FreeGrid } from '.'; export declare type CallbackEvent = { target: HTMLInputElement; }; export declare type ColumnCallBackFn = (e: CallbackEvent, col: IColumns, freeGrid: FreeGrid) => void; export declare type CellCallbackFn = (e: CallbackEvent, col: IColumns, row: number, data: IDataRow, freeGrid: FreeGrid) => void; export declare type RowCallBackFn = (e: CallbackEvent, row: number, freeGrid: FreeGrid) => void; export declare type renderCallBackFn = (html: any, col: IColumns, row: number, data: IDataRow, freeGrid: FreeGrid) => void; export declare type FilterOperator = 'EQUAL' | 'LESS_THAN_OR_EQUAL_TO' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'GREATER_THAN' | 'CONTAINS' | 'NOT_EQUAL_TO' | 'DOES_NOT_CONTAIN' | 'BEGIN_WITH' | 'END_WITH'; export declare type DataTypes = 'text' | 'number' | 'image' | 'boolean' | 'date'; export declare type Triggers = 'input' | 'change'; export declare type SelectionMode = 'none' | 'single' | 'multiple'; export declare type rowCache = { i: number; }; export interface IColumns { header?: string; attribute: string; readonly?: boolean; disabled?: boolean; hide?: boolean; width?: number; filterable?: { filterOverLabel?: boolean; beforeFilterCallbackFn?: ColumnCallBackFn; auto?: boolean; filterTrigger?: Triggers; currentValue?: string | number | boolean | Date; placeholder?: string; operator?: FilterOperator; }; sortable?: { sortAscending?: boolean; sortNo?: number; beforeSortCallbackFn?: ColumnCallBackFn; auto?: boolean; }; type?: DataTypes; beforeEditCallbackFn?: CellCallbackFn; autoUpdateData?: boolean; afterEditCallbackFn?: CellCallbackFn; editEventType?: Triggers; rowRenderCallBackFn?: renderCallBackFn; headerRenderCallBackFn?: renderCallBackFn; headerRenderLabelCallBackFn?: renderCallBackFn; headerRenderInputCallBackFn?: renderCallBackFn; disableDragDrop?: boolean; allowGrouping?: boolean; } export interface IGridConfig { columns: IColumns[]; rowHeight: number; panelHeight?: number; headerHeight: number; footerHeight: number; scrollLeft?: number; lastScrollTop?: number; selectionMode?: SelectionMode; beforeSelectionChangeCallBackFn?: RowCallBackFn; afterSelectionChangeCallBackFn?: RowCallBackFn; rowRenderCallBackFn?: renderCallBackFn; footerRenderCallBackFn?: renderCallBackFn; headerRenderCallBackFn?: renderCallBackFn; groupingSet?: IGroupingObj[]; sortingSet?: ISortObjectInterface[]; groupingExpanded?: string[]; } export interface ISortObjectInterface { attribute: string; asc?: boolean; no?: number; } export declare type IDataRow = { __fg_key?: string | number; __group?: boolean; __groupID?: string; __groupName?: string; __groupLvl?: number; __groupTotal?: number; __groupChildren?: IDataRow[]; __groupExpanded?: boolean; } & object; export interface IGroupingObj { title: string; field: string; } export interface IFilterObj { operator: number; value: any; attribute: string; type: string; }