import { ElementRef, OnInit, EventEmitter, QueryList } from '@angular/core';
import { CfCoreComponent } from '../core/core.component';
import { ListModel } from '../../models/list/list.model';
import { ListStylingModel } from '../../models/list/list-styling.model';
import { CfItemComponent } from '../item/item.component';
import { TemplateService } from '../../services/template-service/template.service';
/**
 * <p>List component based on Angular Material List</p>
 * <p>Example of using:</p>
 * <pre>
 * <code><</code>cf-wizard [properties]="myList" [styling]="myListStyles"<code>></code><code><</code><code>/</code>cf-list<code>></code>
 * </pre>
 */
export declare class CfListComponent extends CfCoreComponent implements OnInit {
    elementRef: ElementRef;
    /**
   * It is an ListModel object with options to be rendered into component template
   */
    cfList: ListModel;
    /**
   * It is an attribute <b>[properties]</b> of directive <b>cf-list</b> which take ListModel object.
   * <p>Example of model:</p>
   * <pre>{
   *  title: 'This is list title'
   * }</pre>
   * <h4>title: string</h4>
   * It is title for List component
   */
    properties: ListModel;
    /**
   * It is an attribute <b>[styling]</b> of directive <b>cf-list</b> which take ListStylingModel object with next properties:
   * <h4>container: StylingModel</h4>
   * Styling properties for main wizard container
   */
    styling: ListStylingModel;
    /**
     * Input property for the title
     */
    title: string;
    /**
     * Input property for selectable
     */
    selectable: boolean;
    /**
     * Input property to show checkbox on list items
     */
    withCheckbox: boolean;
    /**
     * Array for selected items IDs
     */
    selectedItems: number[];
    /**
   * It is <b>(onSelect)</b> attribute of <b>cf-list</b> component. Is emmiting event with array of selected items IDs
   */
    onSelect: EventEmitter<{}>;
    /**
     * Private property for generating IDs for list items when list is selectable
     */
    randomId: number;
    constructor(elementRef: ElementRef, /**@hidden */ templateService: TemplateService);
    /**
   * It will be generated <b>cfList</b> object and rendered inside component template. Also cfListToggleClasses array will be initialized to build each item details toggle icon.
   */
    ngOnInit(): void;
    /**
     * Angular core function to listen for component properties changes
   * @param changes  it is object with changed properties
     */
    ngOnChanges(changes: any): void;
    /**
     * Array with list items
     */
    items: QueryList<CfItemComponent>;
    /**
     * After List content was initialized and component is selectable, will be generated IDs for all list items and each selected item ID will be pushed to selectedItems array.
     */
    ngAfterContentInit(): void;
    /**
     * Function to update selectedItems array values and emit them
   * @param data  item data object
     */
    updateValues(data: any): void;
}
