import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { FormControl, FormGroup, FormGroupDirective, NgForm } from '@angular/forms';
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { MatChipInputEvent } from '@angular/material/chips';
import { ErrorStateMatcher } from '@angular/material/core';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { SdLabelDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
import { SdFormControl } from '@sd-angular/core/forms/models';
import { SdSize } from '@sd-angular/core/utilities';
import * as i0 from "@angular/core";
declare class SdChipErrotStateMatcher implements ErrorStateMatcher {
    private formControl;
    constructor(formControl: FormControl);
    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
}
export declare class SdChip implements OnDestroy, AfterViewInit {
    #private;
    private ref;
    autoId?: string;
    set _autoId(val: string | undefined | null);
    set _name(val: string | undefined);
    appearance: MatFormFieldAppearance;
    separatorKeysCodes: number[];
    selectable: boolean;
    size: SdSize;
    set form(val: NgForm | FormGroup);
    addable: boolean;
    set _addable(val: boolean | '' | undefined | null);
    label: string;
    placeholder?: string;
    removable: boolean | ((item: any) => boolean);
    set _removable(val: '' | boolean | ((item: any) => boolean));
    hideInlineError: boolean;
    set _hideInlineError(val: boolean | '' | undefined | null);
    set model(values: undefined | (string | number)[]);
    required: boolean;
    set _required(val: boolean | '' | undefined | null);
    min: number;
    set pMin(val: number | string);
    max: number;
    set pMax(val: number | string);
    modelChange: EventEmitter<any>;
    set disabled(val: boolean | '' | undefined | null);
    sdChange: EventEmitter<any[]>;
    input: ElementRef<HTMLInputElement>;
    sdView?: SdViewDefDirective;
    sdLabelDef?: SdLabelDefDirective;
    isBlurring: boolean;
    isFocused: boolean;
    inputControl: FormControl<any>;
    formControl: SdFormControl;
    matcher: SdChipErrotStateMatcher;
    constructor(ref: ChangeDetectorRef);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onAdd: (event: MatChipInputEvent) => void;
    onClickChip: ($event: Event, item: any) => void;
    onRemove: (item: any) => void;
    onSelect: (event: MatAutocompleteSelectedEvent) => void;
    onFocus: () => void;
    onBlur: () => void;
    onClick: () => void;
    focus: () => void;
    onClear: ($event?: any) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdChip, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SdChip, "sd-chip", never, { "_autoId": { "alias": "autoId"; "required": false; }; "_name": { "alias": "name"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "size": { "alias": "size"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_addable": { "alias": "addable"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "_removable": { "alias": "removable"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "pMin": { "alias": "min"; "required": false; }; "pMax": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdView", "sdLabelDef"], never, true, never>;
}
export {};
