import { Control } from './../../models/control';
import { FormGroup } from '@angular/forms';
import { ProcessService } from '../../services/process.service';
import { ValidationService } from '../../services/validation.service';
import { Task } from '../../models';
import { Helper as DGSHelper, ApiService } from '@dotgov/core';
import { ObjectLiteral } from '../../models/objectLiteral';
/**
 * Extends Helepr for dotgov/core.
 * Static methods only.
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class Helper extends DGSHelper {
    /**
     * Extracts all errors from form-group.
     * Changes the flags on the way.
     * @param _group
     * @param _process
     * @param _validation
     */
    static getErrors(_group: FormGroup, _process: ProcessService, _validation: ValidationService): Promise<any[]>;
    /**
     * Finds control by {refName} inside {task}.
     * @param refName
     * @param task
     */
    static controlRef(refName: string, task: Task): Control;
    /**
     * Generates fromData object based on given {group} + {process} + {task}.
     * @param _group
     * @param _process
     * @param _task
     */
    static getFormData(_group: FormGroup, _process: ProcessService, _task: Task): ObjectLiteral;
    /**
     * Transform lookup value to API required format.
     * @param value
     * @param control
     */
    static sanitizeLookupValue(value: any, control: Control): any[] | any;
    /**
     * Removes dublicates from array.
     * Not using ...new Set(arr) because of --downlevelLiterals.
     * @param arr
     */
    static removeDublicates(arr: any): any[];
    /**
     * Extract child controls to {controls} from given {controls};
     * Using reference variable for easier flat-style resulted array.
     * @param controls
     * @param control
     */
    static getChildControls(controls: any, control: any): void;
    /**
     * Check whatever given {control} has visible child controls or not.
     * @param control
     */
    static haveVisibles(control: any): boolean;
    /**
     * Triggers file download
     * @param api
     * @param rowData
     */
    static downloadFile(api: ApiService, rowData: any): Promise<void>;
    /**
     * Parse {container} and find closest body/[role] parrent ( will be updated by {customRule} if send ).
     * @param container
     * @param customRule Overrides default match behaviour. Still match default if override fails.
     */
    static parentContainer(container: any, customRule?: (el: HTMLElement) => {}): any;
}
