import { TaskQueue } from 'aurelia-framework';
import { Datacontext } from './../../data/data-context';
import { I18N } from 'aurelia-i18n';
import { AgGridView, CsvExportConfig } from './../../model/common-model';
import { BindingEngine } from 'aurelia-framework';
import { Column } from "ag-grid-community";
import { CustomLogger } from '../../modules/custom-logger';
import { Box } from '../../modules/box';
import { Router } from 'aurelia-router';
import { AuthService } from '../../security/auth-service';
import { Disposable } from 'aurelia-binding';
import { Config } from '../../config';
import { GridOptions } from './../../resources/elements/utilities/ag-grid-helpers';
export declare class CustomAgGrid {
    bindingEngine: BindingEngine;
    private router;
    private logger;
    i18n: I18N;
    private box;
    private authService;
    private datacontext;
    private config;
    private element;
    private taskQueue;
    gridOptions: GridOptions;
    heightStyle: string;
    title: string;
    options: BindableGridOptions;
    addFn: Function;
    deleteFn: Function;
    canAdd: boolean;
    canDelete: boolean;
    canBack: boolean;
    canUseView: boolean;
    canUseFilter: boolean;
    canUseParameters: boolean;
    canResetFilters: boolean;
    canExport: boolean;
    agGridViewList: Array<AgGridView>;
    afterResetFilters: Function;
    afterSetAgGridView: (agGridView: IAgGridView) => void;
    rowCount: number;
    selectedElemCount: number;
    canShowAllView: boolean;
    showFilterBox: boolean;
    showViewBox: boolean;
    showParametersViewBox: boolean;
    csvExportConfig: CsvExportConfig;
    agGridViewModuleView: string;
    gridHeaderBar: HTMLElement;
    disposables: Array<Disposable>;
    private calculatedHeight;
    constructor(bindingEngine: BindingEngine, router: Router, logger: CustomLogger, i18n: I18N, box: Box, authService: AuthService, datacontext: Datacontext, config: Config, element: Element, taskQueue: TaskQueue);
    get isHeightStyleProvided(): boolean;
    get showRowsCount(): boolean;
    get showSelectedElemCount(): boolean;
    attached(): void;
    detached(): void;
    calculateBodyHeight(tries?: number): void;
    private getPadding;
    gridOptionsChanged(newValue: GridOptions, oldValue: any): void;
    selectAll(): void;
}
declare class GridColumn {
    private gridOptions;
    headerName: string;
    show: boolean;
    hide: boolean;
    field: string;
    constructor(gridOptions: GridOptions);
    showChanged(newValue: any, oldValue: any): void;
}
export declare class BindableGridOptions {
    private gridOptions;
    columnsSave: Array<GridColumn>;
    columns: Array<GridColumn>;
    constructor(gridOptions: GridOptions);
    private initializeGridColumn;
    refreshColumns(updatedColumns: Column[]): void;
}
export interface IAgGridView {
    agGridView: AgGridView;
}
export {};
