
import { IgcFilteringExpressionsTree } from './igc-filtering-expressions-tree';
import { IgcGridScrollEventArgs } from './igc-grid-scroll-event-args';
import { IgcGridCellEventArgs } from './igc-grid-cell-event-args';
import { IgcGridRowEventArgs } from './igc-grid-row-event-args';
import { IgcGridFormGroupCreatedEventArgs } from './igc-grid-form-group-created-event-args';
import { IgcGridValidationStatusEventArgs } from './igc-grid-validation-status-event-args';
import { IgcRowSelectionEventArgs } from './igc-row-selection-event-args';
import { IgcColumnSelectionEventArgs } from './igc-column-selection-event-args';
import { IgcPinColumnCancellableEventArgs } from './igc-pin-column-cancellable-event-args';
import { IgcPinColumnEventArgs } from './igc-pin-column-event-args';
import { IgcGridEditEventArgs } from './igc-grid-edit-event-args';
import { IgcGridEditDoneEventArgs } from './igc-grid-edit-done-event-args';
import { IgcColumnComponent } from './igc-column-component';
import { IgcSortingEventArgs } from './igc-sorting-event-args';
import { IgcSortingExpression } from './igc-sorting-expression';
import { IgcFilteringEventArgs } from './igc-filtering-event-args';
import { IgcRowDataEventArgs } from './igc-row-data-event-args';
import { IgcRowDataCancelableEventArgs } from './igc-row-data-cancelable-event-args';
import { IgcColumnResizeEventArgs } from './igc-column-resize-event-args';
import { IgcGridContextMenuEventArgs } from './igc-grid-context-menu-event-args';
import { IgcColumnVisibilityChangingEventArgs } from './igc-column-visibility-changing-event-args';
import { IgcColumnVisibilityChangedEventArgs } from './igc-column-visibility-changed-event-args';
import { IgcColumnMovingStartEventArgs } from './igc-column-moving-start-event-args';
import { IgcColumnMovingEventArgs } from './igc-column-moving-event-args';
import { IgcColumnMovingEndEventArgs } from './igc-column-moving-end-event-args';
import { IgcGridKeydownEventArgs } from './igc-grid-keydown-event-args';
import { IgcRowDragStartEventArgs } from './igc-row-drag-start-event-args';
import { IgcRowDragEndEventArgs } from './igc-row-drag-end-event-args';
import { IgcGridClipboardEvent } from './igc-grid-clipboard-event';
import { IgcRowToggleEventArgs } from './igc-row-toggle-event-args';
import { IgcPinRowEventArgs } from './igc-pin-row-event-args';
import { IgcActiveNodeChangeEventArgs } from './igc-active-node-change-event-args';
import { IgcGridToolbarExportEventArgs } from './igc-grid-toolbar-export-event-args';
import { IgcGridSelectionRange } from './igc-grid-selection-range';
import { IgcForOfDataChangeEventArgs } from './igc-for-of-data-change-event-args';
import { IgcGridTemplateContext } from './igc-grid-template-context';
import { IgcRenderFunction } from './common';
import { IgcDataCloneStrategy } from './igc-data-clone-strategy';
import { IgcClipboardOptions } from './igc-clipboard-options';
import { IgcGridRowDragGhostContext } from './igc-grid-row-drag-ghost-context';
import { IgcGridRowEditTextTemplateContext } from './igc-grid-row-edit-text-template-context';
import { IgcGridEmptyTemplateContext } from './igc-grid-empty-template-context';
import { IgcGridRowEditActionsTemplateContext } from './igc-grid-row-edit-actions-template-context';
import { IgcGridRowTemplateContext } from './igc-grid-row-template-context';
import { IgcGridHeaderTemplateContext } from './igc-grid-header-template-context';
import { IgcGridToolbarComponent } from './igc-grid-toolbar-component';
import { IgcPaginatorComponent } from './igc-paginator-component';
import { IgcGridResourceStrings } from './igc-grid-resource-strings';
import { FilteringLogic } from './filtering-logic';
import { GridPagingMode } from './grid-paging-mode';
import { GridValidationTrigger } from './grid-validation-trigger';
import { IgcPinningConfig } from './igc-pinning-config';
import { FilterMode } from './filter-mode';
import { GridSummaryPosition } from './grid-summary-position';
import { GridSummaryCalculationMode } from './grid-summary-calculation-mode';
import { IgcFilteringStrategy } from './igc-filtering-strategy';
import { IgcGridSortingStrategy } from './igc-grid-sorting-strategy';
import { IgcGridMergeStrategy } from './igc-grid-merge-strategy';
import { IgcSortingOptions } from './igc-sorting-options';
import { IgcRowDirective } from './igc-row-directive';
import { IgcHeadSelectorTemplateContext } from './igc-head-selector-template-context';
import { IgcRowSelectorTemplateContext } from './igc-row-selector-template-context';
import { TransactionService } from './transaction-service';
                import { GridSelectionMode } from './grid-selection-mode';
import { GridCellMergeMode } from './grid-cell-merge-mode';
import { IgcSearchInfo } from './igc-search-info';
import { IgcForOfState } from './igc-for-of-state';
import { IgcOverlayOutletDirective } from './igc-overlay-outlet-directive';
import { IgcGridRowComponent } from './igc-grid-row-component';
import { DropPosition } from './drop-position';
import { IgcFilteringOperation } from './igc-filtering-operation';
                import { ColumnPinningPosition } from './column-pinning-position';
import { IgcRowType } from './igc-row-type';
import { IgcCellPosition } from './igc-cell-position';
import { IgcOverlaySettings } from './igc-overlay-settings';
import { EventEmitterMixin, LitElement, Constructor, AbstractConstructor } from './common';


/* wcSkipComponentSuffix */


/* blazorIndirectRender
   blazorComponent
   omitModule
   wcSkipComponentSuffix */

    export declare abstract class IgcGridBaseDirective extends EventEmitterMixin<IgcGridBaseDirectiveEventMap, Constructor<LitElement>>(LitElement)

    {

          

    /**
     * Gets/Sets the display time for the row adding snackbar notification.
     */
    public set snackbarDisplayTime(value: number);
          public get snackbarDisplayTime(): number;
  
          

    /**
     * Gets/Sets whether to auto-generate the columns.
     */
    public set autoGenerate(value: boolean);
          public get autoGenerate(): boolean;
  
          

    /**
     * Gets/Sets a list of property keys to be excluded from the generated column collection
     */
    public set autoGenerateExclude(value: string[]);
          public get autoGenerateExclude(): string[];
  
          

    /**
     * Controls whether columns moving is enabled in the grid.
     */
    public set moving(value: boolean);
          public get moving(): boolean;
  
          

    /**
     * Gets/Sets a custom template when empty.
     */
    public set emptyGridTemplate(value: IgcRenderFunction<IgcGridTemplateContext>);
          public get emptyGridTemplate(): IgcRenderFunction<IgcGridTemplateContext>;
  
          

    /**
     * Gets/Sets a custom template for adding row UI when grid is empty.
     */
    public set addRowEmptyTemplate(value: IgcRenderFunction<void>);
          public get addRowEmptyTemplate(): IgcRenderFunction<void>;
  
          

    /**
     * Gets/Sets a custom template when loading.
     */
    public set loadingGridTemplate(value: IgcRenderFunction<IgcGridTemplateContext>);
          public get loadingGridTemplate(): IgcRenderFunction<IgcGridTemplateContext>;
  
          

    /**
     * Get/Set summary row height
     */
    public set summaryRowHeight(value: number);
          public get summaryRowHeight(): number;
  
          

    /**
     * Gets/Sets the data clone strategy of the grid when in edit mode.
     */
    public set dataCloneStrategy(value: IgcDataCloneStrategy);
          public get dataCloneStrategy(): IgcDataCloneStrategy;
  
          

    /**
     * Controls the copy behavior of the grid.
     */
    public set clipboardOptions(value: IgcClipboardOptions);
          public get clipboardOptions(): IgcClipboardOptions;
  
          

    /* treatAsRef */
    /**
     * Sets a conditional class selector to the grid's row element.
     * Accepts an object literal, containing key-value pairs,
     * where the key is the name of the CSS class and the value is
     * either a callback function that returns a boolean, or boolean, like so:
     */
    public set rowClasses(value: any);
          public get rowClasses(): any;
  
          

    /* treatAsRef */
    /**
     * Sets conditional style properties on the grid row element.
     * It accepts an object literal where the keys are
     * the style properties and the value is an expression to be evaluated.
     */
    public set rowStyles(value: any);
          public get rowStyles(): any;
  
          

    /**
     * Gets/Sets the primary key.
     */
    public set primaryKey(value: string);
          public get primaryKey(): string;
  
          

    /* reactContentChildren */
    /* blazorInclude */
    /* blazorTreatAsCollection */
    /* blazorCollectionName: ColumnCollection */
    /* ngQueryListName: columnList */
    /**
     * @hidden @internal
     */
    public set columnList(value: IgcColumnComponent[]);
          public get columnList(): IgcColumnComponent[];
  
          


    /**
     * Gets the custom template, if any, used for row drag ghost.
     */
    public set dragGhostCustomTemplate(value: IgcRenderFunction<IgcGridRowDragGhostContext>);
          public get dragGhostCustomTemplate(): IgcRenderFunction<IgcGridRowDragGhostContext>;
  
          

    /**
     * Gets the row edit text template.
     */
    public set rowEditTextTemplate(value: IgcRenderFunction<IgcGridRowEditTextTemplateContext>);
          public get rowEditTextTemplate(): IgcRenderFunction<IgcGridRowEditTextTemplateContext>;
  
          

    /**
     * Gets the row add text template.
     */
    public set rowAddTextTemplate(value: IgcRenderFunction<IgcGridEmptyTemplateContext>);
          public get rowAddTextTemplate(): IgcRenderFunction<IgcGridEmptyTemplateContext>;
  
          

    /**
     * Gets the row edit actions template.
     */
    public set rowEditActionsTemplate(value: IgcRenderFunction<IgcGridRowEditActionsTemplateContext>);
          public get rowEditActionsTemplate(): IgcRenderFunction<IgcGridRowEditActionsTemplateContext>;
  
          

    /**
     * Gets the row expand indicator template.
    */
    public set rowExpandedIndicatorTemplate(value: IgcRenderFunction<IgcGridRowTemplateContext>);
          public get rowExpandedIndicatorTemplate(): IgcRenderFunction<IgcGridRowTemplateContext>;
  
          

    /**
     * Gets the row collapse indicator template.
    */
    public set rowCollapsedIndicatorTemplate(value: IgcRenderFunction<IgcGridRowTemplateContext>);
          public get rowCollapsedIndicatorTemplate(): IgcRenderFunction<IgcGridRowTemplateContext>;
  
          

    /**
     * Gets the header expand indicator template.
    */
    public set headerExpandedIndicatorTemplate(value: IgcRenderFunction<IgcGridTemplateContext>);
          public get headerExpandedIndicatorTemplate(): IgcRenderFunction<IgcGridTemplateContext>;
  
          

    /**
     * Gets the row collapse indicator template.
    */
    public set headerCollapsedIndicatorTemplate(value: IgcRenderFunction<IgcGridTemplateContext>);
          public get headerCollapsedIndicatorTemplate(): IgcRenderFunction<IgcGridTemplateContext>;
  
          

    /**
     * Gets the excel style header icon.
    */
    public set excelStyleHeaderIconTemplate(value: IgcRenderFunction<IgcGridHeaderTemplateContext>);
          public get excelStyleHeaderIconTemplate(): IgcRenderFunction<IgcGridHeaderTemplateContext>;
  
          

    /**
     * The custom template, if any, that should be used when rendering a header sorting indicator when columns are sorted in asc order.
     */
    public set sortAscendingHeaderIconTemplate(value: IgcRenderFunction<IgcGridHeaderTemplateContext>);
          public get sortAscendingHeaderIconTemplate(): IgcRenderFunction<IgcGridHeaderTemplateContext>;
  
          

    /**
     * The custom template, if any, that should be used when rendering a header sorting indicator when columns are sorted in desc order.
     */
    public set sortDescendingHeaderIconTemplate(value: IgcRenderFunction<IgcGridHeaderTemplateContext>);
          public get sortDescendingHeaderIconTemplate(): IgcRenderFunction<IgcGridHeaderTemplateContext>;
  
          

    /**
     * Gets custom template, if any, that should be used when rendering a header sorting indicator when columns are not sorted.
     */
    public set sortHeaderIconTemplate(value: IgcRenderFunction<IgcGridHeaderTemplateContext>);
          public get sortHeaderIconTemplate(): IgcRenderFunction<IgcGridHeaderTemplateContext>;
  
          

    /* contentChildren */
    /* blazorInclude */
    /* blazorTreatAsCollection */
    /* blazorCollectionName: GridToolbarCollection */
    /* ngQueryListName: toolbar */
    /** @hidden @internal */
    public set toolbar(value: IgcGridToolbarComponent[]);
          public get toolbar(): IgcGridToolbarComponent[];
  
          

    /* contentChildren */
    /* blazorInclude */
    /* blazorTreatAsCollection */
    /* blazorCollectionName: PaginatorCollection */
    /* ngQueryListName: paginationComponents */
    /** @hidden @internal */
    public set paginationComponents(value: IgcPaginatorComponent[]);
          public get paginationComponents(): IgcPaginatorComponent[];
  
          

    /* treatAsRef */
    /**
     * Gets/Sets the resource strings.
     */
    public set resourceStrings(value: IgcGridResourceStrings);
          public get resourceStrings(): IgcGridResourceStrings;
  
          

    /**
     * Gets/Sets the filtering logic of the grid.
     */
    public set filteringLogic(value: FilteringLogic);
          public get filteringLogic(): FilteringLogic;
  
          

    /* mustSetInCodePlatforms: WebComponents;Blazor */
    /**
     * Gets/Sets the filtering state.
     */
    public set filteringExpressionsTree(value: IgcFilteringExpressionsTree);
          public get filteringExpressionsTree(): IgcFilteringExpressionsTree;
  
          

    /**
     * Gets/Sets the advanced filtering state.
     */
    public set advancedFilteringExpressionsTree(value: IgcFilteringExpressionsTree);
          public get advancedFilteringExpressionsTree(): IgcFilteringExpressionsTree;
  
          

    /**
     * Gets/Sets the locale.
     */
    public set locale(value: string);
          public get locale(): string;
  
          

    public set pagingMode(value: GridPagingMode);
          public get pagingMode(): GridPagingMode;
  
          

    /**
     * Gets/Sets if the row selectors are hidden.
     */
    public set hideRowSelectors(value: boolean);
          public get hideRowSelectors(): boolean;
  
          

    /**
     * Gets/Sets whether rows can be moved.
     */
    public set rowDraggable(value: boolean);
          public get rowDraggable(): boolean;
  
          

    /**
     * Gets/Sets the trigger for validators used when editing the grid.
     */
    public set validationTrigger(value: GridValidationTrigger);
          public get validationTrigger(): GridValidationTrigger;
  
          

    /**
     * Gets/Sets whether the rows are editable.
     */
    public set rowEditable(value: boolean);
          public get rowEditable(): boolean;
  
          

    /**
     * Gets/Sets the height.
     */
    public set height(value: string);
          public get height(): string;
  
          

    /**
     * Gets/Sets the width of the grid.
     */
    public set width(value: string);
          public get width(): string;
  
          

    /**
     * Gets/Sets the row height.
     */
    public set rowHeight(value: number);
          public get rowHeight(): number;
  
          

    /**
     * Gets/Sets the default width of the columns.
     */
    public set columnWidth(value: string);
          public get columnWidth(): string;
  
          

    /**
     * Get/Sets the message displayed when there are no records.
     */
    public set emptyGridMessage(value: string);
          public get emptyGridMessage(): string;
  
          

    /**
     * Gets/Sets whether the grid is going to show a loading indicator.
     */
    public set isLoading(value: boolean);
          public get isLoading(): boolean;
  
          

    /**
     * Gets/Sets whether the columns should be auto-generated once again after the initialization of the grid
     * @deprecated Column re-creation now relies on `autoGenerate` instead.
     */
    public set shouldGenerate(value: boolean);
          public get shouldGenerate(): boolean;
  
          

    /**
     * Gets/Sets the message displayed when there are no records and the grid is filtered.
     */
    public set emptyFilteredGridMessage(value: string);
          public get emptyFilteredGridMessage(): string;
  
          

    /* mustSetInCodePlatforms: WebComponents;Blazor;React */
    /**
     * Gets/Sets the initial pinning configuration.
     */
    public set pinning(value: IgcPinningConfig);
          public get pinning(): IgcPinningConfig;
  
          

    /**
     * Gets/Sets if the filtering is enabled.
     */
    public set allowFiltering(value: boolean);
          public get allowFiltering(): boolean;
  
          

    /**
     * Gets/Sets a value indicating whether the advanced filtering is enabled.
     */
    public set allowAdvancedFiltering(value: boolean);
          public get allowAdvancedFiltering(): boolean;
  
          

    /**
     * Gets/Sets the filter mode.
     */
    public set filterMode(value: FilterMode);
          public get filterMode(): FilterMode;
  
          

    /**
     * Gets/Sets the summary position.
     */
    public set summaryPosition(value: GridSummaryPosition);
          public get summaryPosition(): GridSummaryPosition;
  
          

    /**
     * Gets/Sets the summary calculation mode.
     */
    public set summaryCalculationMode(value: GridSummaryCalculationMode);
          public get summaryCalculationMode(): GridSummaryCalculationMode;
  
          

    /**
     * Controls whether the summary row is visible when groupBy/parent row is collapsed.
     */
    public set showSummaryOnCollapse(value: boolean);
          public get showSummaryOnCollapse(): boolean;
  
          

    /**
     * Gets/Sets the filtering strategy of the grid.
     */
    public set filterStrategy(value: IgcFilteringStrategy);
          public get filterStrategy(): IgcFilteringStrategy;
  
          

    /**
     * Gets/Sets the sorting strategy of the grid.
     */
    public set sortStrategy(value: IgcGridSortingStrategy);
          public get sortStrategy(): IgcGridSortingStrategy;
  
          

    /* csSuppress */
    /**
     * Gets/Sets the merge strategy of the grid.
     */
    public set mergeStrategy(value: IgcGridMergeStrategy);
          public get mergeStrategy(): IgcGridMergeStrategy;
  
          

    /**
     * Gets/Sets the sorting options - single or multiple sorting.
     * Accepts an `ISortingOptions` object with any of the `mode` properties.
     */
    public set sortingOptions(value: IgcSortingOptions);
          public get sortingOptions(): IgcSortingOptions;
  
          

    /* blazorByValueArray */
    /* blazorAlwaysWriteback */
    /* @tsTwoWayProperty (true, "SelectedRowsChange", "Detail", false) */
    /* blazorPrimitiveValue */
    /**
     * Gets/Sets the current selection state.
     */
    /* @tsTwoWayProperty (true, "SelectedRowsChange", "Detail", false) */
        /* @blazorSynthesizeTwoWayBind */
public set selectedRows(value: any[]);
          public get selectedRows(): any[];
  
                

    /* csSuppress */
    /**
     * A list of grid row.
     */
    public get rowList(): IgcRowDirective[];
        
                

    /* csSuppress */
    /**
     * A list of currently rendered grid row's.
     */
    public get dataRowList(): IgcRowDirective[];
        
          

    /**
     * Gets the header row selector template.
     */
    public set headSelectorTemplate(value: IgcRenderFunction<IgcHeadSelectorTemplateContext>);
          public get headSelectorTemplate(): IgcRenderFunction<IgcHeadSelectorTemplateContext>;
  
          

    /**
     * Gets the row selector template.
     */
    public set rowSelectorTemplate(value: IgcRenderFunction<IgcRowSelectorTemplateContext>);
          public get rowSelectorTemplate(): IgcRenderFunction<IgcRowSelectorTemplateContext>;
  
          

    /**
     * The custom template, if any, that should be used when rendering the row drag indicator icon
     */
    public set dragIndicatorIconTemplate(value: IgcRenderFunction<IgcGridEmptyTemplateContext>);
          public get dragIndicatorIconTemplate(): IgcRenderFunction<IgcGridEmptyTemplateContext>;
  
          

    /* mustSetInCodePlatforms: WebComponents;Blazor;React */
    /**
     * Gets/Sets the sorting state.
     */
    public set sortingExpressions(value: IgcSortingExpression[]);
          public get sortingExpressions(): IgcSortingExpression[];
  
                

    /**
     * Gets the number of hidden columns.
     */
    public get hiddenColumnsCount(): number;
        
                

    /**
     * Gets the number of pinned columns.
     */
    public get pinnedColumnsCount(): number;
        
          

    /**
     * Gets/Sets whether the grid has batch editing enabled.
     * When batch editing is enabled, changes are not made directly to the underlying data.
     * Instead, they are stored as transactions, which can later be committed w/ the `commit` method.
     */
    public set batchEditing(value: boolean);
          public get batchEditing(): boolean;
  
                

    /* csSuppress */
    /**
     * Get transactions service for the grid.
     */
    public get transactions(): TransactionService;
        
          

    /**
     * Gets/Sets cell selection mode.
     * @param selectionMode: GridSelectionMode
     */
    public set cellSelection(value: GridSelectionMode);
          public get cellSelection(): GridSelectionMode;
  
          

    /**
     * Gets/Sets cell merge mode.
     */
    public set cellMergeMode(value: GridCellMergeMode);
          public get cellMergeMode(): GridCellMergeMode;
  
          

    /**
     * Gets/Sets row selection mode
     */
    public set rowSelection(value: GridSelectionMode);
          public get rowSelection(): GridSelectionMode;
  
          

    /**
     * Gets/Sets column selection mode
     * @param selectionMode: GridSelectionMode
     */
    public set columnSelection(value: GridSelectionMode);
          public get columnSelection(): GridSelectionMode;
  
                

    /**
     * Represents the last search information.
     */
    public get lastSearchInfo(): IgcSearchInfo;
        
                

    /**
     * Returns an array of objects containing the filtered data.
     */
    public get filteredData(): any;
        
                

    /**
     * Returns an array containing the filtered sorted data.
     */
    public get filteredSortedData(): any[];
        
                

    /**
     * Returns the state of the grid virtualization.
     */
    public get virtualizationState(): IgcForOfState;
        
          

    /* blazorCSSuppress */
    /**
     * Gets/Sets a list of key-value pairs [row ID, expansion state].
     */
    public set expansionStates(value: Map<any, boolean>);
          public get expansionStates(): Map<any, boolean>;
  
          

    /**
     * Gets/Sets the outlet used to attach the grid's overlays to.
     * @deprecated Overlays now use the HTML Popover API and no longer move to the document body by default, so using outlet is also no longer needed.
     * body by default, so using outlet is also no longer needed.
     */
    public set outlet(value: IgcOverlayOutletDirective);
          public get outlet(): IgcOverlayOutletDirective;
  
                


    /**
     * Gets the default row height.
     */
    public get defaultRowHeight(): number;
        
                

    /**
     * Gets an array of columns.
     */
    public get columns(): IgcColumnComponent[];
        
                

    /**
     * Gets an array of the pinned columns.
     */
    public get pinnedColumns(): IgcColumnComponent[];
        
                

    /**
     * Gets an array of the pinned to the left columns.
     */
    public get pinnedStartColumns(): IgcColumnComponent[];
        
                

    /**
     * Gets an array of the pinned to the right columns.
     */
    public get pinnedEndColumns(): IgcColumnComponent[];
        
                

    /* csSuppress */
    /**
     * Gets an array of the pinned rows.
     */
    public get pinnedRows(): IgcGridRowComponent[];
        
                

    /**
     * Gets an array of unpinned columns.
     */
    public get unpinnedColumns(): IgcColumnComponent[];
        
                

    /**
     * Returns an array of visible columns.
     */
    public get visibleColumns(): IgcColumnComponent[];
        
          

    /**
     * Returns the total number of records.
     */
    public set totalRecords(value: number);
          public get totalRecords(): number;
  
                

    /**
     * Returns the currently transformed paged/filtered/sorted/grouped/pinned/unpinned row data, displayed in the grid.
     */
    public get dataView(): any[];
        
          

    /**
     * Gets/Sets whether clicking over a row should select/deselect it
     * @param enabled: boolean
     */
    public set selectRowOnClick(value: boolean);
          public get selectRowOnClick(): boolean;
  
            

    /**
     * Returns whether the record is pinned or not.
     * @param rowIndex Index of the record in the `filteredSortedData` collection.
     */
    public isRecordPinnedByIndex(rowIndex: number): void;

            

    /**
     * Toggles the specified column's visibility.
     */
    public toggleColumnVisibility(args: IgcColumnVisibilityChangedEventArgs): void;

            

    /**
     * Expands all rows.
     */
    public expandAll(): void;

            

    /**
     * Collapses all rows.
     */
    public collapseAll(): void;

            

    /**
     * Expands the row by its id.
     * @param rowID The row id - primaryKey value or the data record instance.
     */
    public expandRow(rowID: any): void;

            

    /**
     * Collapses the row by its id.
     * @param rowID The row id - primaryKey value or the data record instance.
     */
    public collapseRow(rowID: any): void;

            


    /**
     * Toggles the row by its id.
     * @param rowID The row id - primaryKey value or the data record instance.
     */
    public toggleRow(rowID: any): void;

            

    /**
     * Gets the `width` to be set on grid header group.
     */
    public getHeaderGroupWidth(column: IgcColumnComponent): string;

            

    /**
     * Returns the column by field name.
     * @param name
     */
    public getColumnByName(name: string): IgcColumnComponent;

            

    public getColumnByVisibleIndex(index: number): IgcColumnComponent;

            

    /**
     * Recalculates all widths of columns that have size set to `auto`.
     */
    public recalculateAutoSizes(): void;

            

    /**
     * Places a column before or after the specified target column.
     */
    public moveColumn(column: IgcColumnComponent, target: IgcColumnComponent, pos?: DropPosition): void;

            

    /**
     * Triggers change detection for the grid.
     * Calling markForCheck also triggers the grid pipes explicitly, resulting in all updates being processed.
     * May degrade performance if used when not needed, or if misused:
     */
    public markForCheck(): void;

            

    /* csSuppress */
    /**
     * Creates a new grid row and adds the data record to the end of the data source.
     * @param data
     */
    public addRow(data: any): void;

            

    /* blazorCSSuppress */
    /**
     * Removes the grid row and the corresponding data record by primary key.
     * @param rowSelector
     */
    public deleteRow(rowSelector: any): any;

            

    /* blazorCSSuppress */
    /**
     * Updates the grid row and the corresponding data record by primary key.
     * @param value the new value which is to be set.
     * @param rowSelector corresponds to rowID.
     * @param column corresponds to column field.
     */
    public updateCell(value: any, rowSelector: any, column: string): void;

            

    /* blazorCSSuppress */
    /**
     * Updates the grid row
     * @param value–
     * @param rowSelector correspond to rowID
     */
    // TODO: prevent event invocation
    public updateRow(value: any, rowSelector: any): void;

            

    /**
     * Returns the data that is contained in the row component.
     * @param rowSelector correspond to rowID
     */
    public getRowData(rowSelector: any): any;

            

    /**
     * Sort a single column.
     */
    public sort(expression: IgcSortingExpression[]): void;

            

    /**
     * Filters a single column.
     * @param name
     * @param value
     * @param conditionOrExpressionTree
     * @param ignoreCase
     */
    public filter(name: string, value: any, conditionOrExpressionTree?: IgcFilteringExpressionsTree | IgcFilteringOperation, ignoreCase?: boolean): void;

            

    /**
     * Filters all the column in the grid with the same condition.
     * @param value
     * @param condition
     * @param ignoreCase
     * @deprecated 
     */
    public filterGlobal(value: any, condition: any, ignoreCase?: any): void;

            

    /**
     * Enables summaries for the specified column and applies your customSummary.
     * @param rest
     */
    public enableSummaries(rest: any[]): void;

            

    /**
     * Disable summaries for the specified column.
     */
    public disableSummaries(rest: any[]): void;

            

    /**
     * If name is provided, clears the filtering state of the corresponding column.
     * @param name
     */
    public clearFilter(name?: string): void;

            

    /**
     * If name is provided, clears the sorting state of the corresponding column.
     * @param name
     */
    public clearSort(name?: string): void;

            

    // TODO: We have return values here. Move them to event args ??

    /**
     * Pins a column by field name.
     * @param columnName
     * @param index
     * @param pinningPosition
     */
    public pinColumn(columnName: string, index?: number, pinningPosition?: ColumnPinningPosition): boolean;

            

    /**
     * Unpins a column by field name. Returns whether the operation is successful.
     * @param columnName
     * @param index
     */
    public unpinColumn(columnName: string, index?: number): boolean;

            

    /* csSuppress */
    /**
     * Pin the row by its id.
     * @param rowID The row id - primaryKey value or the data record instance.
     * @param index The index at which to insert the row in the pinned collection.
     */
    public pinRow(rowID: any, index?: number, row?: IgcRowType): boolean;

            

    /* csSuppress */
    /**
     * Unpin the row by its id.
     * @param rowID The row id - primaryKey value or the data record instance.
     */
    public unpinRow(rowID: any, row?: IgcRowType): boolean;

            

    /**
     * Recalculates grid width/height dimensions.
     */
    public reflow(): void;

            

    /**
     * Finds the next occurrence of a given string in the grid and scrolls to the cell if it isn't visible.
     * @param text the string to search.
     * @param caseSensitive optionally, if the search should be case sensitive (defaults to false).
     * @param exactMatch optionally, if the text should match the entire value  (defaults to false).
     */
    public findNext(text: string, caseSensitive?: boolean, exactMatch?: boolean): number;

            

    /**
     * Finds the previous occurrence of a given string in the grid and scrolls to the cell if it isn't visible.
     * @param text the string to search.
     * @param caseSensitive optionally, if the search should be case sensitive (defaults to false).
     * @param exactMatch optionally, if the text should match the entire value (defaults to false).
     */
    public findPrev(text: string, caseSensitive?: boolean, exactMatch?: boolean): number;

            

    /**
     * Reapplies the existing search.
     * @param updateActiveInfo
     */
    public refreshSearch(updateActiveInfo?: boolean, endEdit?: boolean): number;

            

    /**
     * Removes all the highlights in the cell.
     */
    public clearSearch(): void;

            

    /**
     * Gets calculated width of the pinned areas.
     * @param takeHidden If we should take into account the hidden columns in the pinned area.
     */
    public getPinnedStartWidth(takeHidden?: boolean): void;

            

    /**
 * Gets calculated width of the pinned areas.
 * @param takeHidden If we should take into account the hidden columns in the pinned area.
 */
    public getPinnedEndWidth(takeHidden?: boolean): void;

            

    /**
     * Select specified rows by ID.
     * @param rowIDs
     * @param clearCurrentSelection if true clears the current selection
     */
    public selectRows(rowIDs: any[], clearCurrentSelection?: boolean): void;

            

    /**
     * Deselect specified rows by ID.
     * @param rowIDs
     */
    public deselectRows(rowIDs: any[]): void;

            

    /**
     * Selects all rows
     * @param onlyFilterData
     */
    public selectAllRows(onlyFilterData?: boolean): void;

            

    /**
     * Deselects all rows
     * @param onlyFilterData
     */
    public deselectAllRows(onlyFilterData?: boolean): void;

            

    /**
     * Deselect selected cells.
     */
    public clearCellSelection(): void;

            

    /**
     * Select range(s) of cells between certain rows and columns of the grid.
     */
    public selectRange(arg: IgcGridSelectionRange[]): void;

            

    /**
     * Get the currently selected ranges in the grid.
     */
    public getSelectedRanges(): IgcGridSelectionRange[];

            

    /**
     * Returns an array of the current cell selection in the form of `[{ column.field: cell.value }, ...]`.
     */
    public getSelectedData(formatters?: boolean, headers?: boolean): void;

            

    /**
     * Get current selected columns.
     */
    public selectedColumns(): IgcColumnComponent[];

            

    /**
     * Select specified columns.
     * @param columns
     * @param clearCurrentSelection if true clears the current selection
     */
    public selectColumns(columns: string[] | IgcColumnComponent[], clearCurrentSelection?: boolean): void;

            

    /**
     * Deselect specified columns by field.
     * @param columns
     */
    public deselectColumns(columns: string[] | IgcColumnComponent[]): void;

            

    /**
     * Deselects all columns
     */
    public deselectAllColumns(): void;

            

    /**
     * Selects all columns
     */
    public selectAllColumns(): void;

            

    /**
     * Returns an array of the current columns selection in the form of `[{ column.field: cell.value }, ...]`.
     */
    public getSelectedColumnsData(formatters?: boolean, headers?: boolean): void;

            

    /* blazorCsSuppress */
    /**
     * Navigates to a position in the grid based on provided `rowindex` and `visibleColumnIndex`.
     */
    public navigateTo(rowIndex: number, visibleColIndex?: number, cb?: any): void;

            

    /* blazorCsSuppress */
    /**
     * Returns `ICellPosition` which defines the next cell,
     * according to the current position, that match specific criteria.
     */
    public getNextCell(currRowIndex: number, curVisibleColIndex: number, callback?: any): IgcCellPosition;

            

    /* blazorCsSuppress */
    /**
     * Returns `ICellPosition` which defines the previous cell,
     * according to the current position, that match specific criteria.
     */
    public getPreviousCell(currRowIndex: number, curVisibleColIndex: number, callback?: any): IgcCellPosition;

            

    /**
     * Opens the advanced filtering dialog.
     */
    public openAdvancedFilteringDialog(overlaySettings?: IgcOverlaySettings): void;

            

    /**
     * Closes the advanced filtering dialog.
     * @param applyChanges indicates whether the changes should be applied
     */
    public closeAdvancedFilteringDialog(applyChanges: boolean): void;

            

    /**
     * Finishes the row transactions on the current row and returns whether the grid editing was canceled.
     * @param commit
     */
    // TODO: Facade for crud service refactoring. To be removed
    // TODO: do not remove this, as it is used in rowEditTemplate, but mark is as internal and hidden
    /* blazorCSSuppress */
    public endEdit(commit?: boolean, evt?: any): boolean;

            

    /**
     * Enters add mode by spawning the UI under the specified row by rowID.
     * @param rowID - The rowID to spawn the add row UI for, or null to spawn it as the first record in the data view
     * @param asChild - Whether the record should be added as a child. Only applicable to igxTreeGrid.
     */
    public beginAddRowById(rowID: any, asChild?: boolean): void;

            

    /* csSuppress */
    /**
     * Enters add mode by spawning the UI at the specified index.
     * @param index - The index to spawn the UI at. Accepts integers from 0 to this.grid.dataView.length
     */
    public beginAddRowByIndex(index: number): void;

    }

export declare interface IgcGridBaseDirectiveEventMap {
            
        		    /**
		     * Emitted after filtering is performed.
		     */
filteringExpressionsTreeChange: CustomEvent<IgcFilteringExpressionsTree>;

        		    /**
		     * Emitted after advanced filtering is performed.
		     */
advancedFilteringExpressionsTreeChange: CustomEvent<IgcFilteringExpressionsTree>;

        		    /**
		     * Emitted when grid is scrolled horizontally/vertically.
		     */
gridScroll: CustomEvent<IgcGridScrollEventArgs>;

        		    /**
		     * Emitted when a cell is clicked.
		     */
cellClick: CustomEvent<IgcGridCellEventArgs>;

        		    /**
		     * Emitted when a row is clicked.
		     */
rowClick: CustomEvent<IgcGridRowEventArgs>;

        		    /**
		     * Emitted when formGroup is created on edit of row/cell.
		     */
formGroupCreated: CustomEvent<IgcGridFormGroupCreatedEventArgs>;

        		    /**
		     * Emitted when grid's validation status changes.
		     */
validationStatusChange: CustomEvent<IgcGridValidationStatusEventArgs>;

        		    /**
		     * Emitted when a cell is selected.
		     */
selected: CustomEvent<IgcGridCellEventArgs>;

        		    /**
		     *  Emitted when grid row is selected.
		     */
rowSelectionChanging: CustomEvent<IgcRowSelectionEventArgs>;

        		    /**
		     *  Emitted when column is selected.
		     */
columnSelectionChanging: CustomEvent<IgcColumnSelectionEventArgs>;

        		    /**
		     * Emitted before column is pinned.
		     */
columnPin: CustomEvent<IgcPinColumnCancellableEventArgs>;

        		    /**
		     * Emitted after column is pinned.
		     */
columnPinned: CustomEvent<IgcPinColumnEventArgs>;

        		    /**
		     * Emitted when cell enters edit mode.
		     */
cellEditEnter: CustomEvent<IgcGridEditEventArgs>;

        		    /**
		     * Emitted when cell exits edit mode.
		     */
cellEditExit: CustomEvent<IgcGridEditDoneEventArgs>;

        		    /**
		     * Emitted when cell has been edited.
		     */
cellEdit: CustomEvent<IgcGridEditEventArgs>;

        		    /* blazorCSSuppress */
		    /**
		     * Emitted after cell has been edited and editing has been committed.
		     */
cellEditDone: CustomEvent<IgcGridEditDoneEventArgs>;

        		    /**
		     * Emitted when a row enters edit mode.
		     */
rowEditEnter: CustomEvent<IgcGridEditEventArgs>;

        		    /**
		     * Emitted when exiting edit mode for a row.
		     */
rowEdit: CustomEvent<IgcGridEditEventArgs>;

        		    /**
		     * Emitted after exiting edit mode for a row and editing has been committed.
		     */
rowEditDone: CustomEvent<IgcGridEditDoneEventArgs>;

        		    /**
		     * Emitted when row editing is canceled.
		     */
rowEditExit: CustomEvent<IgcGridEditDoneEventArgs>;

        		    /**
		     * Emitted when a column is initialized.
		     */
columnInit: CustomEvent<IgcColumnComponent>;

        		    /**
		     * Emitted before sorting expressions are applied.
		     */
sorting: CustomEvent<IgcSortingEventArgs>;

        		    /**
		     * Emitted after sorting is completed.
		     */
sortingDone: CustomEvent<IgcSortingExpression[]>;

        		    /**
		     * Emitted before filtering expressions are applied.
		     */
filtering: CustomEvent<IgcFilteringEventArgs>;

        		    /**
		     * Emitted after filtering is performed through the UI.
		     */
filteringDone: CustomEvent<IgcFilteringExpressionsTree>;

        		    /* blazorCSSuppress */
		    /**
		     * Emitted when a row is added.
		     */
rowAdded: CustomEvent<IgcRowDataEventArgs>;

        		    /* blazorCSSuppress */
		    /**
		     * Emitted when a row is deleted.
		     */
rowDeleted: CustomEvent<IgcRowDataEventArgs>;

        		    /**
		     * Emmited when deleting a row.
		     */
rowDelete: CustomEvent<IgcRowDataCancelableEventArgs>;

        		    /**
		     * Emmited just before the newly added row is commited.
		     */
rowAdd: CustomEvent<IgcRowDataCancelableEventArgs>;

        		    /**
		     * Emitted after column is resized.
		     */
columnResized: CustomEvent<IgcColumnResizeEventArgs>;

        		    /**
		     * Emitted when a cell or row is right clicked.
		     */
contextMenu: CustomEvent<IgcGridContextMenuEventArgs>;

        		    /**
		     * Emitted when a cell is double clicked.
		     */
doubleClick: CustomEvent<IgcGridCellEventArgs>;

        		    /**
		     * Emitted before column visibility is changed.
		     */
columnVisibilityChanging: CustomEvent<IgcColumnVisibilityChangingEventArgs>;

        		    /**
		     * Emitted after column visibility is changed.
		     */
columnVisibilityChanged: CustomEvent<IgcColumnVisibilityChangedEventArgs>;

        		    /**
		     * Emitted when column moving starts.
		     */
columnMovingStart: CustomEvent<IgcColumnMovingStartEventArgs>;

        		    /**
		     * Emitted during the column moving operation.
		     */
columnMoving: CustomEvent<IgcColumnMovingEventArgs>;

        		    /**
		     * Emitted when column moving ends.
		     */
columnMovingEnd: CustomEvent<IgcColumnMovingEndEventArgs>;

        		    /**
		     * Emitted when keydown is triggered over element inside grid's body.
		     */
gridKeydown: CustomEvent<IgcGridKeydownEventArgs>;

        		    /**
		     * Emitted when start dragging a row.
		     */
rowDragStart: CustomEvent<IgcRowDragStartEventArgs>;

        		    /**
		     * Emitted when dropping a row.
		     */
rowDragEnd: CustomEvent<IgcRowDragEndEventArgs>;

        		    /**
		     * Emitted when a copy operation is executed.
		     */
gridCopy: CustomEvent<IgcGridClipboardEvent>;

        		    /* blazorCSSuppress */
		    /**
		     * Emitted when the rows are expanded or collapsed.
		     */
expansionStatesChange: CustomEvent<Map<any, boolean>>;

        		    /* blazorInclude */
		    /**
		     * Emitted when the rows are selected or deselected.
		     */
selectedRowsChange: CustomEvent<any[]>;

        		    /**
		     * Emitted when the expanded state of a row gets changed.
		     */
rowToggle: CustomEvent<IgcRowToggleEventArgs>;

        		    /**
		     * Emitted when the pinned state of a row is changed.
		     */
rowPinning: CustomEvent<IgcPinRowEventArgs>;

        		    /**
		     * Emitted when the pinned state of a row is changed.
		     */
rowPinned: CustomEvent<IgcPinRowEventArgs>;

        		    /**
		     * Emitted when the active node is changed.
		     */
activeNodeChange: CustomEvent<IgcActiveNodeChangeEventArgs>;

        		    /**
		     * Emitted before sorting is performed.
		     */
sortingExpressionsChange: CustomEvent<IgcSortingExpression[]>;

        		    /**
		     * Emitted when an export process is initiated by the user.
		     */
toolbarExporting: CustomEvent<IgcGridToolbarExportEventArgs>;

        		    /* End of toolbar related definitions */
		    /**
		     * Emitted when making a range selection.
		     */
rangeSelected: CustomEvent<IgcGridSelectionRange>;

        		    /** Emitted after the ngAfterViewInit hook. At this point the grid exists in the DOM */
rendered: CustomEvent<boolean>;

        		    /**
		     * Emitted before the grid's data view is changed because of a data operation, rebinding, etc.
		     */
dataChanging: CustomEvent<IgcForOfDataChangeEventArgs>;

        		    /**
		     * Emitted after the grid's data view is changed because of a data operation, rebinding, etc.
		     */
dataChanged: CustomEvent<IgcForOfDataChangeEventArgs>;

}
        