import { FilterClause, SearchOption } from './../controls/advanced-search/models';
import { Observable } from 'rxjs';
import { OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { HeaderMetaItem, IResultSet, MenuOption, ViewAction } from '../types';
import * as i0 from "@angular/core";
export declare abstract class BaseListComponent<T> implements OnInit, OnDestroy {
    private route$;
    private router$;
    items: T[] | null | undefined;
    view: string;
    title: string | null;
    actions: ViewAction[];
    loaderItems: any[];
    page: number;
    pageSize: number;
    count: number;
    sort: string | null;
    sortdir: string | null;
    search: string | null;
    filters: FilterClause[];
    searchOptions: SearchOption[];
    sortOptions: MenuOption[];
    metaItems: HeaderMetaItem[];
    abstract newItemLink: string | null;
    private routeSub$;
    private loadSub$;
    autoLoad: boolean;
    constructor(route$: ActivatedRoute, router$: Router);
    ngOnDestroy(): void;
    getViewActions(): Observable<ViewAction[]>;
    ngOnInit(): void;
    /**
   * Get filters from a querystring
   * @param queryParamMap
   * @returns filters found from a paramMap
   */
    private getFiltersFrom;
    private setRouteParams;
    private filterClausesToString;
    actionHandler($event: ViewAction): void;
    private load;
    private updateHeaderMeta;
    abstract loadItems(): Observable<IResultSet<T> | null | undefined>;
    clear(): void;
    refresh(): void;
    pageChanged(page: number): void;
    pageSizeChanged(pageSize: number): void;
    sortChanged(sort: string): void;
    sortdirChanged(sortdir: string): void;
    advancedSearchChanged(filters: FilterClause[]): void;
    searchChanged(searchText: string | null): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseListComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseListComponent<any>, "ng-component", never, { "autoLoad": { "alias": "auto-load"; "required": false; }; }, {}, never, never, false, never>;
}
