/**
 * This file is part of the MedSafe application which is commercial software created by MedVision360 B.V.
 * The source code is proprietary and confidential.
 *
 * Unauthorized copying of this file, via any medium is strictly prohibited.
 *
 * Copyright (c) by MedVision360 B.V. All rights reserved.
 *
 * For the application name: io.medrecord.medsafe
 */
import { EventEmitter } from '@angular/core';
import * as Core from '@angular/core';
import { FormBuilder } from '@angular/forms';
import * as Forms from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { KeyValue } from '../../../../core/models/value-types/key-value';
import { FormControlValidatorModel } from '../../../../core/models/form/form-control-validator-model';
import { FormControlModel } from '../../../../core/models/form/form-control-model';
import { FormValidatorsService } from '../../../../core/services/form-validators.service';
import { ValuesTransformationService } from '../../../../core/services/values-transformation.service';
import { ButtonOptions, InputOptions } from '../../../models';
export interface FormControlListLabels {
    cancelTitle: string;
    saveTitle: string;
}
export declare class FormControlListComponent implements Core.OnInit {
    private translateService;
    private valuesTransformationService;
    private formValidatorsService;
    private fb;
    controls: FormControlModel[];
    labels: FormControlListLabels;
    cancel: EventEmitter<any>;
    formSubmit: EventEmitter<object>;
    form: Forms.FormGroup;
    dateInputOptions: InputOptions;
    dateTimeInputOptions: InputOptions;
    saveButtonOptions: ButtonOptions;
    cancelButtonOptions: ButtonOptions;
    protected defaultControlWidth: number;
    /**
     * Constructor
     */
    constructor(translateService: TranslateService, valuesTransformationService: ValuesTransformationService, formValidatorsService: FormValidatorsService, fb: FormBuilder);
    /**
     * Component init
     */
    ngOnInit(): void;
    /**
     * Is control grouped
     */
    isControlGrouped(control: FormControlModel): boolean;
    /**
     * Get control selected values
     */
    getControlSelectedValues(control: FormControlModel): KeyValue[] | KeyValue;
    /**
     * Get control values
     */
    getControlValues(control: FormControlModel): KeyValue[];
    /**
     * Get control custom value is available
     */
    getControlCustomValueIsAvailable(control: FormControlModel): boolean;
    /**
     * Get control custom value label
     */
    getControlCustomValueLabel(control: FormControlModel): string;
    /**
     * Get control search not found label
     */
    getControlSearchNotFoundLabel(control: FormControlModel): string;
    /**
     * Get control width
     */
    getControlWidth(control: FormControlModel): number;
    /**
     * Is control date
     */
    isControlDate(control: FormControlModel): boolean;
    /**
     * Is control date time
     */
    isControlDateTime(control: FormControlModel): boolean;
    /**
     * Is control boolean
     */
    isControlBoolean(control: FormControlModel): boolean;
    /**
     * Is control text
     */
    isControlText(control: FormControlModel): boolean;
    /**
     * Is control textarea
     */
    isControlTextarea(control: FormControlModel): boolean;
    /**
     * Is control select
     */
    isControlSelect(control: FormControlModel): boolean;
    /**
     * Is control multi select
     */
    isControlMultiSelect(control: FormControlModel): boolean;
    /**
     * Is control radio
     */
    isControlRadio(control: FormControlModel): boolean;
    /**
     * Submit
     */
    submitHandle(): void;
    /**
     * Get default date
     */
    protected getDefaultDate(): string;
    /**
     * Get default date and time
     */
    protected getDefaultDateTime(): string;
    /**
     * Get validators
     */
    protected getValidators(validators: FormControlValidatorModel[]): any[];
}
