import { Injector } from "@angular/core";
import { AppSearch } from "@esfaenza/es-table";
import { MessageService, UtilityService } from "@esfaenza/extensions";
import { HTTPService } from "@esfaenza/httpservice";
import { LocalizationService } from "@esfaenza/localizations";
import { BaseComponent } from "../base/base.component";
import { HttpParams } from "@angular/common/http";
import * as i0 from "@angular/core";
export declare abstract class BaseSearchComponent<TSearch extends AppSearch<TItem>, TItem> extends BaseComponent {
    searchView: TSearch;
    protected HotView: string;
    protected SearchURL: string;
    protected SearchType: new () => TSearch;
    protected ItemType: new () => TItem;
    protected http: HTTPService;
    protected utiExts: UtilityService;
    protected msgExts: MessageService;
    private location;
    private localStorage;
    private route;
    lc: LocalizationService;
    constructor(injector: Injector);
    ngOnInit(): void;
    private init;
    private createOrLoadView;
    sendSearch(): void;
    onSearchRequest(resetPage?: boolean): void;
    private RetrieveProto;
    prepareExport(callback: any, limit?: number, pars?: HttpParams): void;
    abstract initialize(): [string, string, new () => TSearch, new () => TItem] | any;
    protected getDictionaries(): Promise<void>;
    protected afterLoadView(_: TSearch): void;
    protected afterCreateView(_: TSearch): void;
    protected reviewBindings(): void;
    protected canPerformSearch(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseSearchComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseSearchComponent<any, any>, "ng-component", never, {}, {}, never, never, true, never>;
}
