import { ElementRef, EventEmitter, OnInit } from '@angular/core';
import { FormControl, NgControl } from '@angular/forms';
import { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { MatChipInputEvent } from '@angular/material/chips';
import { ChipField, Chip, ChipItemChangedEvent, ChipOrientation, RemoveFunc } from '../../model/chips.model';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { ErrorStateMatcher } from '@angular/material/core';
import { DropdownOption } from '../../model';
import { FieldComponent } from '../field/field.component';
import { Ability } from '@casl/ability';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
export declare class ChipsComponent extends FieldComponent implements OnInit {
    router: Router;
    ability: Ability;
    field: ChipField;
    disabled: boolean;
    formControl: FormControl;
    errorMatcher: ErrorStateMatcher;
    input: ElementRef<HTMLInputElement>;
    matAutocomplete: MatAutocomplete;
    onListChange: EventEmitter<ChipItemChangedEvent>;
    placeholder: string;
    separatorKeysCodes: number[];
    enableDragAndDrop: boolean;
    orientation: ChipOrientation;
    chips: Chip[];
    options: Array<DropdownOption>;
    addOnBlur: boolean;
    removable: boolean;
    constructor(router: Router, ability: Ability);
    stateChanges: Observable<void>;
    id: string;
    ngControl: NgControl;
    focused: boolean;
    empty: boolean;
    shouldLabelFloat: boolean;
    errorState: boolean;
    controlType?: string;
    autofilled?: boolean;
    userAriaDescribedBy?: string;
    setDescribedByIds(ids: string[]): void;
    onContainerClick(event: MouseEvent): void;
    ngOnInit(): void;
    setChips(): void;
    addItem: ($event: MatChipInputEvent) => void;
    keyExists(value: string): boolean;
    removeItem: ($event: Event, item: Chip, index: number) => void;
    drop: ($event: CdkDragDrop<Chip[]>) => void;
    triggerChangedEvent: ($event: Event | MatAutocompleteSelectedEvent) => void;
    onSelected: (event: MatAutocompleteSelectedEvent) => void;
    isFunctionDefined: (func: RemoveFunc) => boolean;
    errors(): Array<{
        error: string;
        message: string;
    }>;
}
