import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { AgGridAngular } from 'ag-grid-angular';
import { ColDef, FirstDataRenderedEvent, GridReadyEvent, SideBarDef, StatusPanelDef, ColGroupDef, SelectionChangedEvent, FilterChangedEvent } from '@ag-grid-community/core';
import { editableIndicator, ExtendedGridDefinition, rowModelType, FilterAggsMapper } from '../../@interfaces/grid.interface';
import { GridService } from '../../@services/grid.service';
import { ApiCallService, AppConfig, EagnaService } from '../../@services/eagna.service';
import { ApiCallParams } from '../../@interfaces/eagna.interface';
import { ActivatedRoute } from '@angular/router';
import { SharedService } from '../../@services/shared.service';
import * as i0 from "@angular/core";
export declare class EagnaGridComponent implements OnInit, AfterViewInit, OnDestroy {
    private _eagnaService;
    private _apiCallService;
    private _sharedService;
    private _activatedRoute;
    private _renderer;
    private _appConfig;
    private _gridService;
    constructor(_eagnaService: EagnaService, _apiCallService: ApiCallService, _sharedService: SharedService, _activatedRoute: ActivatedRoute, _renderer: Renderer2, _appConfig: AppConfig, _gridService: GridService);
    agGrid: AgGridAngular;
    primary: ElementRef;
    appProject: string;
    gridId: string;
    agClass: string;
    agStyle: string;
    agTheme: string;
    columnDefs: (ColDef | ColGroupDef)[];
    rowModelType: rowModelType;
    rowData: any;
    gridService: GridService;
    /**
     * 2-way Binding property to acccess gridParams easily when grid is ready (GridReadyEvent)
     */
    gridParams: GridReadyEvent;
    gridParamsChange: EventEmitter<GridReadyEvent>;
    /**
     * The string to be used as initial value in Search Box when enableSideBar, enableCustomToolPanel and enableGridSearch are on, defaulted to ''
     */
    searchQuery: {
        value: string;
    };
    /**
    * Whether the sidebar is to be displayed in Grid or not, defaulted to true
    */
    enableSideBar: boolean;
    /**
     * Whether the custom panel (Grid Options) is to be displayed in the sidebar, defaulted to true
     */
    enableCustomToolPanel: boolean;
    /**
    * Grid Insights tool panel, turned off for pilot
    */
    enableAnalysisToolPanel: boolean;
    /**
     * If opted to never offer analysis of a grid at all, turn this off
     */
    analysisOption: boolean;
    /**
     * Whether saving of columns and filters is turned on or not, defaulted to true
     */
    enableSaveColumnsAndFilters: boolean;
    /**
    * Whether the search is to be used in Grid Options sidebar or not, defaulted to true
    */
    enableGridSearch: boolean;
    extendedGridDefinition: ExtendedGridDefinition;
    extraParams: any;
    floatingFilter: boolean;
    /**
     * Optionally tell the Grid what sidebar tab should be activated by default.
     */
    defaultToolPanel: "customTools" | "filters" | "columns" | "";
    pivotMode: boolean;
    /**
     * Change the way how Editable Columns shows the edit (pencil) indicator: defaulted to 'hover'
     * hide: to never show the pencil icon
     * show: to permanently show the pencil icon
     * hover: only show the pencil icon upon hover
     */
    editableInd: editableIndicator;
    /**
     * Standard api definition that will be used by the Grid, only for non-ClientSide (e.g. serverSide)
     */
    apiCallParams: ApiCallParams;
    /**
     * Optionally tells the Grid not to load the additional filters for some instances, defaulted to false
     */
    skipLoadAdditionalFilters: boolean;
    /**
    * Optionally tells the Grid not to load the userPreferences for some instances, defaulted to false
    */
    skipUserPref: boolean;
    /**
    * Optionally append the Api request with aggs_filter object same as current filters, defaulted to false
    */
    aggsFilters: boolean;
    /**
     * If serverSideStoreType is full, optionally set num_results for backend query, else num_results will not be send
     */
    num_results: number;
    /**
     * Acts as external event emitter when a column is being filtered
     */
    filteringCustomCallback: (apiParams: any, col: any, colCurrentFilter: any) => any;
    /**
     * Turn this on when using Lazy loaded Route. This will be used when urlState is not provided
     */
    isFeatureModule: boolean;
    /**
     * String to override the formula <gridId_modalId>, this is used in saving filters/coluns in user preference api
     * If not provided, it is computed as the current url route (the last children. it's important to turn on @isFeatureModule when using lazy loaded Module)
     */
    urlState: string;
    /**
    * Used for Grids that are declared in Modal, so that the id to be used in user preferences will be <gridID_modalId>
    */
    modalId: string;
    /**
     * Optionally tell the Grid to not use (Blank) in the filter aggregiation
     */
    dontAddBlankFilter: boolean;
    /**
    * Optionally override column keys as its filtering keys
    */
    defaultFilterOptions: any;
    /**
       * To override Grids Api filter aggs data pattern.
       * If not supplied, by default: {suffix: "_aggs",
       *  extraField: "buckets",
       *  objectKey: "key"
       * }
       * where the aggregation structure is e.g. {id: {buckets: [key: <value1_aggs>, key: <value2_aggs>, ...]}
       */
    filterAggsMapper: FilterAggsMapper;
    /**
      * If enabled, filters and columns change event will save changes in Memory
      */
    enableFiltersAndColumnsMemory: boolean;
    defaultColDef: ColDef;
    components: {
        [p: string]: any;
    } | undefined;
    columnTypes: {
        [key: string]: ColDef;
    } | undefined;
    /**
     * Whether the Grid is paginated or not, defaulted to true
     * */
    pagination: boolean;
    paginationAutoPageSize: boolean;
    paginationPageSize: number;
    cacheOverflowSize: number;
    maxConcurrentDatasourceRequests: number;
    infiniteInitialRowCount: number;
    maxBlocksInCache: number;
    cacheBlockSize: number;
    /**
     * new serverSide store mechanism, partial by default for the current implementation
     */
    serverSideStoreType: 'full' | 'partial';
    enableProfile: boolean;
    statusBar: {
        statusPanels: StatusPanelDef[];
    } | undefined;
    icons: any;
    sideBarParams: any;
    excelMode: boolean;
    isPivotModeOn: boolean;
    /** Specifies the side bar components.     */
    sideBar: SideBarDef | string | string[] | boolean | null | undefined;
    /**
     * Grid internal property used in styling
     */
    gridHasFiltersApplied: boolean;
    /**
       * Grid rendering indicator that can optionally be changed externally (not most of time)
       * as this property is originally designed as internal for Grid itself
       */
    hasRendered: {
        firstData: boolean;
        onwardChanges: boolean;
        firstFilter: boolean;
        firstSort: boolean;
        pivotColumns: boolean;
    };
    on: boolean;
    private _restoringChart;
    private _origRowModelType;
    private _orig_num_results;
    private _colsAndChartState;
    private _orig_pagination;
    private _pivotingList;
    private _isFiltering;
    private _chartRef;
    private _reset_cache;
    private _cacheLastUpdate$;
    private _colsAndChartState$;
    private _loadedProfile;
    private _subscription;
    private _userGridPref?;
    private _isFilterAndSortingApplied;
    private _isSorting;
    private _loadingAggs;
    private _currentSelections;
    private _selectionBeforeRefreshSubject;
    private _selectionBeforeRefresh$;
    private _isRefreshed;
    private _newAggsFromResult;
    private _dataSource;
    private _serverSideDataSource;
    private _isServerSideInstance;
    private _isInfiniteInstance;
    private _isIDataSourceInstance;
    private _isIServerSideDatasourceInstance;
    toggleOn(): void;
    testDestroy(): void;
    ngOnInit(): void;
    private _initGrid;
    private _initStatusBar;
    private _initColumnDefs;
    private _initColumnTypes;
    private _initPagination;
    private _initComponents;
    private _initSideBar;
    private _getUrlState;
    private _isGridPrefMultiFilters;
    private _isGridPrefColumnsGridPrefMultiFilters;
    private _extractUserPref;
    private _appendUserPref;
    private _getUserPref;
    private _setUserColumns;
    private _setUserFilters;
    private _setAsyncFilterParams;
    /**
     * Grid internal method that performs action onGridReady
     * @params params Grid Options params (e.g. params.api)
     * Use extendedGridDefinition.onGridReady to extend this method
     */
    onGridReady(params: GridReadyEvent): void;
    onFirstDataRendered(params: FirstDataRenderedEvent): void;
    /**
       * Grid internal method that performs action onSelectionChanged
       * @params params Grid Options params (e.g. params.api)
       * Use extendedGridDefinition.selectionChanged to extend this method
       */
    onSelectionChanged(params: SelectionChangedEvent): void;
    onFilterChanged(params: FilterChangedEvent): void;
    /**
       * Grid internal method that performs action onCellValueChanged
       * @params params Grid Options params (e.g. params.api)
       * Use extendedGridDefinition.cellValueChanged to extend this method
       */
    onCellValueChanged(params: any): void;
    /**
       * Grid internal method that performs action onCellEditingStarted
       * @params params Grid Options params (e.g. params.api)
       * Use extendedGridDefinition.cellEditingStarted to extend this method
       */
    onCellEditingStarted(params: any): void;
    /**
       * Grid internal method that performs action onCellEditingStopped
       * @params params Grid Options params (e.g. params.api)
       * Use extendedGridDefinition.cellEditingStopped to extend this method
       */
    onCellEditingStopped(params: any): void;
    /**
     * Grid internal method that performs action onColumnResized
     * @params params Grid Options params (e.g. params.api)
     * Use extendedGridDefinition.columnResized to extend this method
     */
    onColumnResized(p: any): void;
    private _clearColumns;
    private _clearFilters;
    private _setAgGridTheme;
    private _initAgGridChartTheme;
    private _setUserPreferences;
    stageEditableDataState(p?: any, rowNodes?: any[], reselect?: boolean): void;
    /**
       * Instead of wondering how to refresh the currently loaded grid data for which GRID_TYPE
       * Use this global method that applies to all
       * Technically will do the refresh cache for non-CLIENTSIDE
       * and will reinitiate the grid lifecycle for CLIENTSIDE.
       * @param purge: turn this off normal refresh without purging the entire data
       * @param route?: optionally provide route for grouped grid, e.g. ['Group1', 2, 'Group3']
      */
    refresh(params?: {
        gridParams?: any;
        redrawRows?: any[] | {
            refreshWithIds: any[];
            idField?: string;
        } | ApiCallParams;
        purge?: boolean;
        route?: any[];
        dontReselect?: boolean;
    }): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EagnaGridComponent, [null, null, null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EagnaGridComponent, "eagna-grid", never, { "appProject": "appProject"; "gridId": "gridId"; "agClass": "agClass"; "agStyle": "agStyle"; "agTheme": "agTheme"; "columnDefs": "columnDefs"; "rowModelType": "rowModelType"; "rowData": "rowData"; "gridService": "gridService"; "gridParams": "gridParams"; "searchQuery": "searchQuery"; "enableSideBar": "enableSideBar"; "enableCustomToolPanel": "enableCustomToolPanel"; "enableAnalysisToolPanel": "enableAnalysisToolPanel"; "analysisOption": "analysisOption"; "enableSaveColumnsAndFilters": "enableSaveColumnsAndFilters"; "enableGridSearch": "enableGridSearch"; "extendedGridDefinition": "extendedGridDefinition"; "extraParams": "extraParams"; "floatingFilter": "floatingFilter"; "defaultToolPanel": "defaultToolPanel"; "pivotMode": "pivotMode"; "editableInd": "editableInd"; "apiCallParams": "apiCallParams"; "skipLoadAdditionalFilters": "skipLoadAdditionalFilters"; "skipUserPref": "skipUserPref"; "aggsFilters": "aggsFilters"; "num_results": "num_results"; "filteringCustomCallback": "filteringCustomCallback"; "isFeatureModule": "isFeatureModule"; "urlState": "urlState"; "modalId": "modalId"; "dontAddBlankFilter": "dontAddBlankFilter"; "defaultFilterOptions": "defaultFilterOptions"; "filterAggsMapper": "filterAggsMapper"; "enableFiltersAndColumnsMemory": "enableFiltersAndColumnsMemory"; "enableProfile": "enableProfile"; }, { "gridParamsChange": "gridParamsChange"; }, never, never, false>;
}
