import { EventEmitter, AfterViewInit, OnChanges, Signal } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { ClientFilterService } from '../../services/filter/client-filter.service';
import { CrudColumn, CrudActionEvent } from '../../interfaces/rb-crud.interface';
import { ButtonSettings } from '../../interfaces/button.interface';
import * as i0 from "@angular/core";
export declare class RbCrudComponent implements AfterViewInit, OnChanges {
    private clientFilterService;
    columns: CrudColumn[];
    data: any[];
    actionsMenu: ButtonSettings[];
    pagination: boolean;
    pageSize: number;
    infiniteScroll: boolean;
    textLineBreakable: boolean;
    actionClick: EventEmitter<CrudActionEvent>;
    pageChange: EventEmitter<number>;
    paginator: MatPaginator;
    sort: MatSort;
    displayedColumns: string[];
    dataSource: MatTableDataSource<any, MatPaginator>;
    filterText: Signal<string>;
    constructor(clientFilterService: ClientFilterService);
    ngAfterViewInit(): void;
    ngOnChanges(): void;
    defineSortRule(): void;
    onActionClick(action: ButtonSettings, row: any): void;
    onClickCell(action: string, row: any): void;
    applyFilter(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RbCrudComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RbCrudComponent, "rb-crud", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "actionsMenu": { "alias": "actionsMenu"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "infiniteScroll": { "alias": "infiniteScroll"; "required": false; }; "textLineBreakable": { "alias": "textLineBreakable"; "required": false; }; }, { "actionClick": "actionClick"; "pageChange": "pageChange"; }, never, never, true, never>;
}
