import { OnInit, OnDestroy, ElementRef } from '@angular/core';
import { GridOptions } from 'ag-grid';
import { AgGridNg2, AgGridColumn } from 'ag-grid-angular';
import { HttpClient } from '@angular/common/http';
import { Router, ActivatedRoute } from '@angular/router';
import { ISortModel } from './grid-sequelize-sort';
import { IFilterModel } from './grid-sequelize-filter';
import { IIncludeModelItem } from './grid-sequelize-include';
import { Papa } from 'ngx-papaparse';
export declare enum GridFilterType {
    Text = "agTextColumnFilter",
    Date = "agDateColumnFilter",
    Number = "agNumberColumnFilter"
}
export declare const GridValueFormatter: {
    dateFormat: string;
    date: (params: any) => string;
    noTextIfNull: (params: any) => any;
};
export interface GridParams {
    httpEndpoint: string;
    httpIncludeParam: IIncludeModelItem[];
    initialSortModel: ISortModel[];
    staticFilter: IFilterModel;
    gridFunctions: {
        addBaseUrl: string;
        editBaseUrl: string;
        canAdd: boolean;
        canEdit: boolean;
        canCopy?: boolean;
        canDelete: boolean;
        canImport?: boolean;
        hideView?: boolean;
        logToConsole?: boolean;
        exportFromServerSide?: boolean;
    };
    columnDefs: Partial<AgGridColumn>[];
    keepUserFilterSort: boolean;
    doNotUsePagination?: boolean;
    idColName?: string;
    exportFields?: string[];
    hideToolbar?: boolean;
}
export declare class GridComponent implements OnInit, OnDestroy {
    private http;
    private route;
    private router;
    private papa;
    params: GridParams;
    agGrid: AgGridNg2;
    fileImput: ElementRef;
    gridSortModel: ISortModel[];
    gridFilterModel: IFilterModel;
    totalPageCount: number;
    currentPageNumber: number;
    pageRowCount: number;
    totalRowCount: number;
    rowData: any[];
    gridOptions: GridOptions;
    isRowViewMode: boolean;
    rowViewDataId: number;
    rowViewData: {
        headerName: string;
        value: any;
    }[];
    csvData: any;
    constructor(http: HttpClient, route: ActivatedRoute, router: Router, papa: Papa);
    ngOnInit(): void;
    ngOnDestroy(): void;
    saveLocalStorageData(): void;
    loadLocalStorageData(): any;
    refresh(updateOnPosition?: boolean): void;
    onButtonAdd(): void;
    onButtonEdit(): void;
    onButtonCopy(): void;
    onButtonDelete(): void;
    onButtonBackward(): void;
    onButtonForward(): void;
    onButtonNext(): void;
    onButtonPrevious(): void;
    onButtonRefresh(): void;
    formatErrorMessage(error: any): string;
    onButtonView(): void;
    onButtonViewCancel(): void;
    onButtonViewEdit(): void;
    onButtonImportCSV($event: any): void;
    onButtonExport(): void;
}
