import { AfterViewInit, ChangeDetectorRef } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { FVAbstractControl } from '../../../shared/abstract-control.component';
import { ProcessService } from '../../../../services/process.service';
import { LanguageService } from '../../../../services/language.service';
import { ValidationService } from '../../../../services/validation.service';
import { ApiService } from '@dotgov/core';
import { Control, GridConfig, Dock, Task } from '../../../../models';
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class FVControlsLookupComponent extends FVAbstractControl implements AfterViewInit {
    private process;
    private api;
    private ref;
    private validationService;
    private language;
    lookupGrid: GridConfig;
    showModal: boolean;
    loading: boolean;
    multipleData: any;
    constructor(process: ProcessService, api: ApiService, ref: ChangeDetectorRef, validationService: ValidationService, language: LanguageService);
    ngAfterViewInit(): void;
    /**
     * Update lookup on custom grid output.
     * @param response
     */
    onAdvancedGridResponse(response?: any): void;
    modalClosed(): void;
    /**
     * Removes value from multi-lookup.
     * @param id
     */
    removeValue(id: any): void;
    /**
     * Returns name of row based on id.
     */
    multiName(id: any): string;
    /**
     * Check if there is some value typed inside multi-lookup.
     * Placeholder not shown when there is some selected value but no text typed.
     * @param div
     */
    isTextTyped(div: any): boolean;
    /**
     * Open lookup based on control settings.
     * @param control
     * @param multi
     */
    openLookup(control: Control, multi?: boolean): void;
    get defaultDockedBottom(): Dock[];
    get isMultilookup(): boolean;
    get formControl(): AbstractControl;
    /**
     * Fetch values for multi-lookup.
     * @param task
     * @param filters
     */
    protected fetchMultiLookupData(task: Task, filters: any[]): void;
    /**
     * Protected because override property must have same access level as super
     * @param _value
     */
    protected setValue(_value?: string, forced?: boolean, row?: any): Promise<void>;
    private parseBindingSet;
    /**
     * Return {ref} if it was found in {origin};
     * @param origin
     * @param ref
     */
    private findNested;
    /**
     * Update value for form and process.
     * @param _value
     * @param updateProcess
     */
    private updateValue;
    private updateLoading;
    private getMultiOptions;
    setAdvancedValue(value: string, row: any): Promise<void>;
    fetchAdvancedValue(key: any): Promise<any>;
}
