import { ValidationErrors, FormControl, AbstractControl } from '@angular/forms';
import { LanguageService } from '../services/language.service';
import { IDGSEnvironment, Debugger } from '@dotgov/core';
import { Subscription } from 'rxjs';
import { Control } from '../models/control';
import { ProcessService } from './process.service';
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class FormErrors {
    control?: FormControl;
    errors?: ValidationErrors;
    constructor(control?: FormControl, errors?: ValidationErrors);
}
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class ValidationService extends Debugger {
    protected environment: IDGSEnvironment;
    private language;
    private process;
    private updateValidation;
    private errorsText;
    constructor(environment: IDGSEnvironment, language: LanguageService, process: ProcessService);
    /**
     * Return unknown type error.
     * @param warn
     */
    unkownError(warn?: boolean): Promise<string>;
    /**
     * Transform form-group {errorName} into readable one. ( translation included )
     * @param errorName
     * @param controlTitle
     * @param controlName
     * @param controlRef
     */
    getError(errorName: string, controlTitle?: string, controlName?: string, controlRef?: Control): Promise<string>;
    /**
     * Check if given {controlRef} got any errors.
     * @param errors
     * @param controlRef
     * @param hideLabel
     * @returns Found errors.
     */
    scanForControlErrors(errors: ValidationErrors, controlRef: Control, hideLabel?: boolean): Promise<string[]>;
    /**
     * Scan for any error on form except allowed ones.
     * Now as allowed match only required form-grid type.
     * @param controls
     */
    scanForErrorsButAllowed(controls: {
        [key: string]: FormControl | AbstractControl;
    }, allowed?: number[]): boolean;
    onUpdate(cb: any): Subscription;
    update(value?: any): void;
    private capitalize;
}
