/**
 * @license
 * Copyright UIUX Engineering All Rights Reserved.
 */
import { AfterViewInit, ChangeDetectorRef, EventEmitter } from '@angular/core';
import { AbstractControl, FormGroup } from '@angular/forms';
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { IFormValue } from '@uiux/cdk/forms';
import { SpSearchAutoComplateFormGroup, SpSearchAutoComplateFormGroupFactory } from './search-autocomplete-form-group.service';
export interface ISpinnerConfig {
    diameter?: number;
    strokeWidth?: number;
}
export declare class SpSearchAutoCompleteComponent implements AfterViewInit {
    private _changeDetector;
    private _formGroupFactory;
    private _formSub;
    private _timer;
    private _currentSearchValue;
    private _optionIsSelecting;
    private _controller;
    formGroup: FormGroup;
    formGroupService: SpSearchAutoComplateFormGroup;
    formValue: IFormValue;
    inputBlur: boolean;
    control: AbstractControl;
    bindStyle: boolean;
    placeholder: string;
    autoCompleteData: any;
    /**
     * Options
     * textOnly, iconText
     */
    optionTemplate: string;
    delay: number;
    minLength: number;
    iconLeft: boolean;
    isSearching: boolean;
    displayWith: Function;
    optionFormatter: Function;
    disableSubmit: boolean;
    overrideMaterial: boolean;
    spinnerConfig: ISpinnerConfig;
    /**
     * String emitted from input value changes.
     * Always a string value.
     */
    valueChanges: EventEmitter<string>;
    /**
     * Object or String emitted from autocomplete option select.
     * Always a string value.
     */
    optionSelected: EventEmitter<string | object>;
    /**
     * Object or String emitted from keyboard 'Enter' event
     * or click event on search icon.
     */
    submit: EventEmitter<string | object>;
    /**
     * Aggregation of optionSelected, onSubmitHandler, and valueChanges events.
     * ( You receive all events )
     */
    changes: EventEmitter<string | object>;
    constructor(_changeDetector: ChangeDetectorRef, _formGroupFactory: SpSearchAutoComplateFormGroupFactory);
    ngAfterViewInit(): void;
    /**
     * onSubmitHandler handler
     */
    onSubmitHandler(): void;
    /**
     * optionSelected handler
     */
    onOptionSelected(e: MatAutocompleteSelectedEvent): void;
    detectChanges(): void;
    onChange(val: string | object): void;
    /**
     * if optionValueMap is provided, return
     * the value mapped in option, else, return
     * the option itself.
     *
     * @param option
     * @returns string
     */
    formatOptionText(option: any): string;
}
