import { OnInit, EventEmitter, TemplateRef } from '@angular/core';
import { FormGroup, FormBuilder } from '@angular/forms';
import { AcademiaPaginationService } from '../academia-pagination/academia-pagination.component.service';
import { TranslateService } from '@ngx-translate/core';
import { CrudCompactService } from './crud-compact.service';
import { SearchComboBoxGenericModel } from '../search-combo-box/search-combo-box-generic/search-combo-box-generic.model';
export declare class CrudCompactComponent implements OnInit {
    _formBuilder: FormBuilder;
    paginationService: AcademiaPaginationService;
    translate: TranslateService;
    crudCompactService: CrudCompactService;
    /**
     * updatedItems from table
     */
    updatedItems: EventEmitter<any>;
    /**
     * last new item added from table
     */
    lastNewItem: EventEmitter<any>;
    /**
     * event if list is modified
     */
    listModified: EventEmitter<any>;
    /**
     *  input items to component
     */
    inputItems: any[];
    /**
     *  input show pending changes message apperas inside component
     */
    disableSavePendingMessage: boolean;
    /**
     * index attribute according data model. This attribute is used to compare new items with table's elements.
     */
    indexAttribute: string;
    /**
     * attribute for displaying in table.
     */
    showListAttribute: string;
    /**
     * define crud-compact mode . Possibles values ex: "person"-> Search-person-combo-box, "program" -> Search-program-combo-box. "product", "dependency".
     */
    selectMode: any;
    /**
     * define search combo box model.
     */
    componentModel: SearchComboBoxGenericModel;
    /**
     * define if crud-component displays an image inside table
     */
    listWithAvatar: boolean;
    /**
     * customTemplate. override default template. Still not working
     */
    customTemplate: TemplateRef<any>;
    /**
     * define number of elements by page inside table.
     */
    pageSize: number;
    /**
     * define whether crud compact is read Only
     */
    readOnly: boolean;
    /**
     * define
     */
    clearComponentState: boolean;
    formGroup: FormGroup;
    /**
     * variable to show or to hide add button.
     */
    showAddForm: boolean;
    /**
     * variable to define number page
     */
    page: number;
    /**
     * variable newItem selected from search-combo-box
     */
    newItem: any;
    /**
     * elements by page according pagination service
     */
    paginatedItems: any[];
    /**
      * variable to define component state (true => Modified, false => NoModified or saved)
      */
    isModified: boolean;
    /**
     * Constructor for the crud-compact component
     * @param _formBuilder Form Builder for creating Reactive Forms group.
     * @param paginationService Academia Pagination Service for client pagination.
     * @param translate Translate service for translating keys inside component
     */
    constructor(_formBuilder: FormBuilder, paginationService: AcademiaPaginationService, translate: TranslateService, crudCompactService: CrudCompactService);
    ngOnInit(): void;
    ngOnChanges(): void;
    /**
    * The method set paginated items according changes in page and pageSize
    */
    setPaginatedItems(): void;
    /**
      * The method save new item
      */
    setNewItem(): void;
    /**
     * The method deletes specific item from of list
     */
    deleteItem(itemForDeleting: any): void;
    /**
      * The method checks if specific item is in a list
      */
    exitsElementInList(item: any, list: any): boolean;
    /**
     * The method sets Object from Academia Components to newItem object
     */
    setObjectFromEvent(event: any): void;
    /**
     * The method sets Academia Paginator changes over current list
     */
    pageChanged(event: any): void;
    private setComponentState(isModified);
}
