import { EventEmitter, OnDestroy } from '@angular/core';
import { FilterMode } from '@armor/api';
import { FilterConfig } from '../../models/data/filter-config';
import { IColumnConfig } from '../../models/tables/column-config.interface';
import { IDataFilteredEvent } from '../../models/data/data-filtered-event.interface';
import { IPaginationEvent } from '../../models/data/pagination-event.interface';
import { FilterOption } from '../../models/data/filter-option';
import { Subscription } from 'rxjs';
export declare class DataServiceBase implements OnDestroy {
    constructor();
    protected _filterText: string;
    filterText: string;
    sortField: string;
    sortAsc: boolean;
    filters: FilterConfig[];
    filterMode: FilterMode;
    columns: IColumnConfig[];
    pageSize: number;
    pageNumber: number;
    filtersChanged$: EventEmitter<FilterConfig>;
    columnSelectionChanged$: EventEmitter<IColumnConfig[]>;
    dataFiltered$: EventEmitter<IDataFilteredEvent>;
    paginationChanged$: EventEmitter<IPaginationEvent>;
    paginationSubscription: Subscription;
    getAsyncFilters: () => Promise<FilterConfig[]>;
    initPaginationSubscription(): void;
    ngOnDestroy(): void;
    extractFilterOptions(key: string, data: any[]): FilterOption[];
}
