import { OnInit } from '@angular/core';
import { PreferencesService } from 'systelab-preferences';
import { I18nService } from 'systelab-translate';
import { IsFullWidthRowParams } from 'ag-grid-community';
import { AbstractSearcher } from './abstract-searcher';
import { AbstractApiGrid } from '../grid/abstract-api-grid.component';
import { DialogService } from '../modal/dialog/dialog.service';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class SearcherTableComponent<T> extends AbstractApiGrid<T> implements OnInit {
    protected preferencesService: PreferencesService;
    protected i18nService: I18nService;
    protected dialogService: DialogService;
    valueForSearch: string;
    searchForContain: boolean;
    searcher: AbstractSearcher<T>;
    constructor(preferencesService: PreferencesService, i18nService: I18nService, dialogService: DialogService);
    ngOnInit(): void;
    protected getColumnDefs(): Array<any>;
    protected hideHeader(): boolean;
    protected getIsFullWidthRow(isFullWidthRowParams: IsFullWidthRowParams): boolean;
    getFullWidthCellRenderer(): any;
    protected getContextMenuOptions(): Array<any>;
    getTotalItems(): number;
    protected getData(page: number, itemsPerPage: number): Observable<Array<T>>;
    refreshTable(): void;
    focusFirstRow(): void;
    getSelectedElements(): Array<T>;
    protected getGridOptionsPreferencesPrefix(): string;
    onModelUpdated(event: any): void;
    private getSelectionField;
    onRowSelected(event: any): void;
    private addElementToMultipleSelectedItemList;
    private onEnterPressedCallback;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearcherTableComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearcherTableComponent<any>, "systelab-internal-searcher-table", never, { "valueForSearch": { "alias": "valueForSearch"; "required": false; }; "searchForContain": { "alias": "contains"; "required": false; }; "searcher": { "alias": "searcher"; "required": false; }; }, {}, never, never, false, never>;
}
