import { ViewModelBase } from './view-model-base';
import { ServiceBase } from '../data/service-base';
import * as breeze from 'breeze-client';
import { Router } from 'aurelia-router';
import { CustomLogger } from '../modules/custom-logger';
import { ViewCompiler } from 'aurelia-framework';
import { Box } from '../modules/box';
import { Subscription } from 'aurelia-event-aggregator';
import { AgGridView, DataGridSetting } from '../model/common-model';
import { AgGridViewService } from '../services/ag-grid-view-service';
import { AgGridSortingHelper, GridOptions } from '../resources/elements/utilities/ag-grid-helpers';
export declare class SelectAllHeaderComponent {
    params: ListViewModelBase<breeze.Entity>;
    eGui: any;
    init?(params: any): void;
    getGui(): HTMLElement;
    destroy?(): void;
}
export declare abstract class ListViewModelBase<T extends breeze.Entity> extends ViewModelBase {
    abstract get ressourceName(): string;
    gridViewService: AgGridViewService;
    agGridViewList: Array<AgGridView>;
    viewCompiler: ViewCompiler;
    box: Box;
    localeChangedSubscription: Subscription;
    protected gridOptions: GridOptions;
    service: ServiceBase<T>;
    manager: breeze.EntityManager;
    protected routeName: string;
    private isViewsEnabled;
    private idSuffix;
    useUserSettingFilter: boolean;
    useUserSettingSorter: boolean;
    private firstIndex;
    private isFirstTimeSelection;
    protected usedViewId: number;
    protected agGridSortingHelper: AgGridSortingHelper;
    usedView: AgGridView;
    private showUsedViewInList;
    selectedEntitiesCount: number;
    canSelectAll: boolean;
    protected selectAll: boolean;
    private translatedPropertyHelper;
    useExperimentalProjection: boolean;
    additionalSelectPropertyPaths: Array<string>;
    constructor(router: Router, logger: CustomLogger, serviceInstance: ServiceBase<T>);
    unselectAll(): void;
    attached(): Promise<void>;
    detached(): Promise<void>;
    get ribbonHeaderText(): string;
    get selectedEntities(): T[];
    get entitiesCount(): number;
    get canDelete(): boolean;
    getSelectedEntitiesFromCache(): Promise<T[]>;
    delete(detachInverseFKEntities?: boolean): Promise<boolean>;
    protected refreshAfterDelete(): void;
    deactivate(): void;
    filter: string;
    filterChanged(newValue: any, oldValue: any): void;
    selectAllChanged(newValue: any, oldValue: any): void;
    private gotoDetails;
    private gotoDetailInNewWindow;
    private openInNewTab;
    getDetailsUrl(self: any, entity: T): string;
    onCellClicked(entity: T): boolean | null;
    initializeGridOptions(fixedFilters?: boolean, hasHyperlinkColumn?: boolean | null): void;
    private onCellClickedInternal;
    private onModelUpdated;
    onSelectionChanged(event?: any): void;
    private handleSingleRowSelectionMode;
    private checkHeaderCheckBoxIfNeeded;
    private applyViewById;
    private applyDefaultView;
    private applyView;
    private applyCustomSettings;
    onGridReady(event?: any): Promise<void>;
    toggleFloatingRow(floatingFilter?: boolean): void;
    protected saveUserSettings(settings: DataGridSetting): Promise<void>;
    protected saveGridColumnsState(): Promise<void>;
    protected filterColStateForSaving(colState: any[] | null): any[];
    protected isSavedDifferentFromCurrent(settingsA: DataGridSetting, settingsB: DataGridSetting): boolean;
    protected isFixedFiltersEqual(settingsA: DataGridSetting, settingsB: DataGridSetting): boolean;
    protected isAdjustColumnsEqual(settingsA: DataGridSetting, settingsB: DataGridSetting): boolean;
    protected isColStateEqual(settingsA: DataGridSetting, settingsB: DataGridSetting): boolean;
    protected isFilterModelEqual(settingsA: DataGridSetting, settingsB: DataGridSetting): boolean;
    protected arrayOfObjectsMatch(arr1: Array<AnyObject>, arr2: Array<AnyObject>, excludedProperties?: Array<string>): boolean;
    getDataGridColumns(): any;
    headerCellRendererComp(): Promise<unknown>;
    protected isSelectedChanged(entity: T): void;
    protected isSelectable(entity: T): boolean;
    headerCellRendererSelectAll(): HTMLElement;
    protected getSelectableRows(): T[];
    private actualizeCheckboxes;
    private allDataLoaded;
    initAgGridView(): Promise<void>;
    resetFilters(): void;
    private applySelect;
    private getSelectPropertyPaths;
    private convertFromString;
    private convertFromObject;
    private buildArrayForManyToManyExpand;
    private fetchServiceExpands;
}
