import { AfterContentInit, ChangeDetectorRef, EventEmitter, Injector, OnChanges, OnDestroy, QueryList, SimpleChanges, TemplateRef } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Observable, Subject } from 'rxjs';
import { LanguageCode } from '../../../common/generated-types';
import { DataService } from '../../../data/providers/data.service';
import { DataTableConfigService } from '../../../providers/data-table/data-table-config.service';
import { DataTableFilterCollection } from '../../../providers/data-table/data-table-filter-collection';
import { BulkActionMenuComponent } from '../bulk-action-menu/bulk-action-menu.component';
import { FilterPresetService } from '../data-table-filter-presets/filter-preset.service';
import { DataTable2ColumnComponent } from './data-table-column.component';
import { DataTableComponentConfig, DataTableCustomComponentService, DataTableLocationId } from './data-table-custom-component.service';
import { DataTableCustomFieldColumnComponent } from './data-table-custom-field-column.component';
import { DataTable2SearchComponent } from './data-table-search.component';
import * as i0 from "@angular/core";
/**
* @description
* A table for displaying PaginatedList results. It is designed to be used inside components which
* extend the {@link BaseListComponent} or {@link TypedBaseListComponent} class.
*
* @example
* ```html
*
*
*
*
*
* {{ review.id }}
*
*
*
*
* {{ review.createdAt | localeDate : 'short' }}
*
*
*
*
* {{ review.updatedAt | localeDate : 'short' }}
*
*
*
*
* {{ review.name }}
*
*
*
*
*
* ```
*
* @docsCategory components
*/
export declare class DataTable2Component implements AfterContentInit, OnChanges, OnDestroy {
protected changeDetectorRef: ChangeDetectorRef;
protected dataService: DataService;
id: DataTableLocationId;
items: T[];
itemsPerPage: number;
currentPage: number;
totalItems: number;
emptyStateLabel: string;
filters: DataTableFilterCollection;
activeIndex: number;
trackByPath: string;
pageChange: EventEmitter;
itemsPerPageChange: EventEmitter;
visibleColumnsChange: EventEmitter[]>;
columns: QueryList>;
customFieldColumns: QueryList>;
searchComponent: DataTable2SearchComponent;
bulkActionMenuComponent: BulkActionMenuComponent;
customSearchTemplate: TemplateRef;
templateRefs: QueryList>;
injector: Injector;
route: ActivatedRoute;
filterPresetService: FilterPresetService;
dataTableCustomComponentService: DataTableCustomComponentService;
dataTableConfigService: DataTableConfigService;
protected customComponents: Map;
rowTemplate: TemplateRef;
currentStart: number;
currentEnd: number;
disableSelect: boolean;
showSearchFilterRow: boolean;
protected uiLanguage$: Observable;
protected destroy$: Subject;
constructor(changeDetectorRef: ChangeDetectorRef, dataService: DataService);
get selectionManager(): import("@vendure/admin-ui/core").SelectionManager;
get allColumns(): DataTable2ColumnComponent[];
get visibleSortedColumns(): DataTable2ColumnComponent[];
get sortedColumns(): DataTable2ColumnComponent[];
private shiftDownHandler;
private shiftUpHandler;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
ngAfterContentInit(): void;
onColumnReorder(event: {
column: DataTable2ColumnComponent;
newIndex: number;
}): void;
onColumnsReset(): void;
toggleSearchFilterRow(): void;
trackByFn(index: number, item: any): any;
onToggleAllClick(): void;
onRowClick(item: T, event: MouseEvent): void;
static ɵfac: i0.ɵɵFactoryDeclaration, never>;
static ɵcmp: i0.ɵɵComponentDeclaration, "vdr-data-table-2", never, { "id": { "alias": "id"; "required": false; }; "items": { "alias": "items"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; "totalItems": { "alias": "totalItems"; "required": false; }; "emptyStateLabel": { "alias": "emptyStateLabel"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "activeIndex": { "alias": "activeIndex"; "required": false; }; "trackByPath": { "alias": "trackByPath"; "required": false; }; }, { "pageChange": "pageChange"; "itemsPerPageChange": "itemsPerPageChange"; "visibleColumnsChange": "visibleColumnsChange"; }, ["searchComponent", "bulkActionMenuComponent", "customSearchTemplate", "columns", "customFieldColumns", "templateRefs"], ["vdr-bulk-action-menu"], false, never>;
}