import { AfterViewInit, EventEmitter, OnInit, TemplateRef, QueryList } from '@angular/core';
import { Columns } from '../../models/table.model';
import { ColumnTemplateDirective } from '../../directives/column-template.directive';
import * as i0 from "@angular/core";
export declare class SortEvent {
    key: string;
    direction: '' | 'asc' | 'desc';
}
export declare class SimpleColumn {
    key: string;
    field: string;
    label: string;
    sortable: boolean;
    customCell: boolean;
    width?: string;
    constructor(key: string, label: string);
    static fromArray(array: {
        key: string;
        label: string;
        customCell?: boolean;
    }[]): SimpleColumn[];
    static column(key: string, label: string): SimpleColumn;
    static custom(key: string, label: string): SimpleColumn;
    static sortable(key: string, label: string, field?: string): SimpleColumn;
    static action(): SimpleColumn;
    withField(field: string): SimpleColumn;
    withSortable(sortable?: boolean): SimpleColumn;
    withCustomCell(customCell?: boolean): SimpleColumn;
    withWidth(width: string): SimpleColumn;
}
export declare class TableComponent implements OnInit, AfterViewInit {
    columns: Columns[];
    lines: any;
    customTable: TemplateRef<any>;
    pagination: any;
    hasCheckbox: boolean;
    noItensMessage: string;
    sortable: boolean;
    emptyMessageTitle: string;
    emptyMessageDescription: string;
    emptyMessageIcon: string;
    selectedLines: EventEmitter<any>;
    listActions: never[];
    selectLines: any[];
    filteredModule: any;
    sort: EventEmitter<SortEvent>;
    sortKey: string | null;
    sortDirection: 'asc' | 'desc' | '';
    onItensPerPageChange: EventEmitter<number>;
    onPageChange: EventEmitter<number>;
    templates?: QueryList<ColumnTemplateDirective>;
    internalTemplates: QueryList<ColumnTemplateDirective>;
    get allTemplates(): ColumnTemplateDirective[];
    ngOnInit(): void;
    ngAfterViewInit(): void;
    initializeTable(): void;
    getNestedValue(obj: any, path: string): any;
    selectAllCheckbox(): void;
    selectCheckbox(line: any): void;
    onSort(column: Columns): void;
    getTemplate(key: string): TemplateRef<any> | null;
    get disabledActions(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "cfc-table", never, { "columns": { "alias": "columns"; "required": false; }; "lines": { "alias": "lines"; "required": false; }; "customTable": { "alias": "customTable"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "hasCheckbox": { "alias": "hasCheckbox"; "required": false; }; "noItensMessage": { "alias": "noItensMessage"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "emptyMessageTitle": { "alias": "emptyMessageTitle"; "required": false; }; "emptyMessageDescription": { "alias": "emptyMessageDescription"; "required": false; }; "emptyMessageIcon": { "alias": "emptyMessageIcon"; "required": false; }; "templates": { "alias": "templates"; "required": false; }; }, { "selectedLines": "selectedLines"; "sort": "sort"; "onItensPerPageChange": "onItensPerPageChange"; "onPageChange": "onPageChange"; }, ["internalTemplates"], never, false, never>;
}
