import { OnInit } from '@angular/core';
import { CardData, CardDataViewComponent, ColumnDefinition, DataViewComponent, IDataFilter, SortCondition } from 'verben-ng-ui';
import { DataViewConfig } from '../models/DataViewConfig';
import * as i0 from "@angular/core";
export declare abstract class BaseDataViewComponent<T> implements OnInit {
    cardDataView: CardDataViewComponent;
    dataView: DataViewComponent;
    styles: import("verben-ng-ui").TableStyles;
    abstract config: DataViewConfig<T>;
    data: import("@angular/core").WritableSignal<T[]>;
    cardData: import("@angular/core").Signal<CardData[]>;
    currentData: CardData | null;
    isGridView: boolean;
    selected: CardData | null;
    visibleColumns: IDataFilter[];
    filterArray: IDataFilter[];
    sortOptions: IDataFilter[];
    selectedColumnCount: number;
    selectedFilterTableCount: number;
    selectedSortCount: number;
    constructor();
    ngOnInit(): void;
    protected loadInitialData(): void;
    private initializeConfig;
    openDetailView(identifier: any): void;
    private resetSelections;
    protected abstract getCardDataByIdentifier(identifier: any): CardData | undefined;
    downloadCSV(data: Partial<any>[]): void;
    onViewChange(isGridView: boolean): void;
    onColumnsUpdated(updatedColumns: ColumnDefinition<T>[]): void;
    onSortUpdated(updatedSorts: SortCondition[]): void;
    onSelectionChange(selectedRows: T[]): void;
    onStateChange(event: {
        key: string;
        value: boolean;
    }): void;
    handleExport(exportedData: Partial<T>[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseDataViewComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseDataViewComponent<any>, "ng-component", never, {}, {}, never, never, false, never>;
}
