/// <reference types="core-js" />
import { FormGroup, FormControl } from '@angular/forms';
import { NovoControlConfig } from './FormControls';
import { NovoFieldset } from './FormInterfaces';
export declare class NovoFormControl extends FormControl {
    hidden: boolean;
    required: boolean;
    initialValue: any;
    label: string;
    readOnly: boolean;
    validators: any;
    hasRequiredValidator: boolean;
    tooltip: string;
    tooltipPosition: string;
    constructor(value: any, control: NovoControlConfig);
    hide(clearValue: true): void;
    show(): void;
    setRequired(req: boolean): void;
    setValue(value: any, {onlySelf, emitEvent, emitModelToViewChange, emitViewToModelChange}?: {
        onlySelf?: boolean;
        emitEvent?: boolean;
        emitModelToViewChange?: boolean;
        emitViewToModelChange?: boolean;
    }): void;
    setReadOnly(read: boolean): void;
    markAsInvalid(message: string): void;
}
export declare class FormUtils {
    toFormGroup(controls: any): FormGroup;
    addControls(formGroup: FormGroup, controls: NovoControlConfig[]): void;
    toFormGroupFromFieldset(fieldsets: Array<NovoFieldset>): FormGroup;
    determineInputType(field: any): string;
    getControlForField(field: any, http: any, config: any, overrides?: any): any;
    toControls(meta: any, currencyFormat: any, http: any, config: any, overrides?: any): any[];
    toFieldSets(meta: any, currencyFormat: any, http: any, config: any, overrides?: any): NovoFieldset[];
    getControlOptions(field: any, http: any, config: any): any;
    setInitialValues(controls: Array<NovoControlConfig>, values: any, keepClean?: boolean, keyOverride?: string): void;
    setInitialValuesFieldsets(fieldsets: Array<NovoFieldset>, values: any, keepClean?: boolean): void;
    forceShowAllControls(controls: Array<NovoControlConfig>): void;
    forceShowAllControlsInFieldsets(fieldsets: Array<NovoFieldset>): void;
    forceValidation(form: FormGroup): void;
}
