import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
import { TranslateService } from '@ngx-translate/core';
import { DateRangeSelectorComponent, DateRangeSelectorService, I18NDescriptor } from '@vendasta/uikit';
import { Observable } from 'rxjs';
import { ResellerItem } from '../..';
import { ProductInformation } from './product-information';
import { Columns, ResellerItemMap } from './table.util';
import * as i0 from "@angular/core";
export declare class ManageProductTableComponent implements OnInit, AfterViewInit, OnDestroy {
    private dateRangeService;
    private translateService;
    appIdToNameMap$: Observable<ResellerItemMap>;
    dataSource: MatTableDataSource<ProductInformation>;
    totalProductCnt$: Observable<number>;
    showSellingInStoreColumn: boolean;
    sort: MatSort;
    private applySearchFilter$$;
    filterApplied: boolean;
    private productToolbarText$$;
    displayedColumns: string[];
    dateFilterValue: I18NDescriptor;
    filters: {
        icon: string;
        title: {
            key: string;
        };
        text: I18NDescriptor;
        enabled: boolean;
        dialog: {
            component: typeof DateRangeSelectorComponent;
        };
    }[];
    config: {
        canAddAndRemove: boolean;
    }[];
    Columns: typeof Columns;
    private unsubscribe$;
    constructor(dateRangeService: DateRangeSelectorService, translateService: TranslateService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    getProductId(product: ResellerItem): string | null;
    get productToolbarText$(): Observable<string>;
    handleSearchFilter(filterValue: string): void;
    private applySearchFilter;
    private updateProductToolbarText;
    private sortingDataAccessor;
    ngOnDestroy(): void;
    trackByFn(_: any, item: ProductInformation): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ManageProductTableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ManageProductTableComponent, "app-manage-product-table", never, { "appIdToNameMap$": "appIdToNameMap$"; "dataSource": "dataSource"; "totalProductCnt$": "totalProductCnt$"; "showSellingInStoreColumn": "showSellingInStoreColumn"; }, {}, never, never>;
}
