import { Renderer2, ViewContainerRef } from "@angular/core";
import { ControlValueAccessor } from "@angular/forms";
import { Params } from "@angular/router";
import { RegexType } from "../../constants/app.constant";
import * as i0 from "@angular/core";
export declare class VcInputComponent implements ControlValueAccessor {
    #private;
    private renderer;
    name: string;
    type: 'text' | 'email' | 'password';
    position: 'left' | 'right';
    placeholder: string;
    maxLength: undefined;
    required: boolean;
    isDisabled: boolean;
    readOnly: boolean;
    applyAllowNumberOnly: boolean;
    customClass: Params;
    label: string;
    pattern: RegExp;
    regexType: RegexType;
    projectedSvgElement: any;
    inputElement: ViewContainerRef;
    constructor(renderer: Renderer2);
    /**
     * The function returns the value of the private control property.
     * @returns The value of the private property `#controlValue` is being returned.
     */
    get control(): string;
    /**
     * The function sets the value of a control and propagates the change to other components.
     * @param {string} value - The value parameter is a string that represents the new value for the
     * control.
     */
    set control(value: string);
    /**
     * The writeValue function assigns a value to the control property if the value is not empty.
     * @param {string} value - The value parameter is a string that represents the value to be assigned to
     * the control property.
     */
    writeValue(value: string): void;
    /**
     * The function "registerOnChange" sets a callback function to be called when a change event occurs.
     * @param fn - A function that will be called when a change event occurs.
     */
    registerOnChange(fn: () => void): void;
    /**
     * The function "registerOnTouched" assigns a callback function to the "propagateTouched" property.
     * @param fn - A function that takes no arguments and returns nothing.
     */
    registerOnTouched(fn: () => void): void;
    /**
     * The function "touched" calls the "propagateTouched" function with the provided event parameter.
     * @param {any}  - The  parameter is typically an object that represents the event that was
     * triggered. It contains information about the event, such as the target element, event type, and any
     * additional data associated with the event. In this case, it is of type "any", which means it can be
     * any type of
     */
    touched($event: any): void;
    /**
     * The ngAfterViewInit function adds dynamic styles to an SVG element and an input element based on the
     * position value.
     */
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<VcInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VcInputComponent, "vc-input", never, { "name": { "alias": "name"; "required": true; }; "type": { "alias": "type"; "required": false; }; "position": { "alias": "position"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "required": { "alias": "required"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "applyAllowNumberOnly": { "alias": "applyAllowNumberOnly"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "label": { "alias": "label"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "regexType": { "alias": "regexType"; "required": false; }; }, {}, ["projectedSvgElement"], ["[matIcon]"], true, never>;
}
