/*!
 * Copyright 2020 VMware, Inc.
 * SPDX-License-Identifier: BSD-2-Clause
 */
import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
import { NgControl, ValidationErrors } from '@angular/forms';
import { BaseFormControl } from '../base-form-control';
/**
 * A {@link FormControl} that contains an input that supports string, number and datetime-local input types
 *
 * Example:
 *      <vcd-form-input
 *          type="number"
 *          [formControlName]="Fields.port"
 *          [placeholder]="'port'|translate"
 *          [label]="'network.services.firewall.sourcePort'|translate">
 *      </vcd-form-input>
 */
export declare class FormInputComponent extends BaseFormControl implements AfterViewInit {
    /**
     * Input 'placeholder' field.
     */
    placeholder: string;
    /**
     * Minimum value allowed.
     * (This is an input specified in the component attribute.)
     */
    min: number;
    /**
     * Maximum value allowed.
     * (This is an input specified in the component attribute.)
     */
    max: number;
    /**
     * Input 'type' field.
     */
    type: string;
    /**
     * Input 'size' field.
     */
    size: number;
    /**
     * Maximum number of characters (in UTF-16 code units) that the user can enter.
     */
    maxlength: number;
    /**
     * The direction for displaying the hint
     */
    hintPosition: string;
    /**
     * Hint to display in the content of a signpost
     */
    hint: string;
    /**
     * The input field element
     */
    textInput: ElementRef;
    /**
     * Emitted when enter key is released for callers to handle the event like... closing a filter widget
     * {@link DatagridNumericFilterComponent.close}
     */
    enterClicked: EventEmitter<boolean>;
    /**
     * Emitted when escape key is released for callers to handle the event
     */
    escapeClicked: EventEmitter<boolean>;
    constructor(controlDirective: NgControl);
    /**
     * Input fields in the vcd-ui app does not support IME input on chrome browser. So in order to fix it, the value
     * being assigned to the form control has to be given to the input HTML element's value using the 'viewChild' query
     * selector inside writeValue function.
     */
    writeValue(value: any): void;
    ngAfterViewInit(): void;
    inputChanged(): void;
    /**
     * Move the focus to the input element.
     * Its content is also selected for quick editing.
     */
    focus(): void;
    /**
     * Default validator that looks at the input's [validity](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState)
     */
    validateNumber(): ValidationErrors;
}
/**
 * To format a date string into a value which can be given to the input html element
 */
export declare function getFormattedDateValue(value: string): string;
export declare function pad(num: number): string | number;
