import { OnInit, ElementRef, EventEmitter } from '@angular/core';
import { CfCoreComponent } from '../core/core.component';
import { InputModel } from '../../models/input/input.model';
import { InputStylingModel } from '../../models/input/input-styling.model';
import { ControlValueAccessor } from '@angular/forms';
import { TemplateService } from '../../services/template-service/template.service';
/**
 * <p>CF Icon Component</p>
 * <pre>
 * <code>
 * import { InputModel } from 'cedrus-fusion'
 * import { InputStylingModel } from 'cedrus-fusion'
 * <code><</code>cf-input<code>></code><code><</code><code>/</code>cf-input<code>></code>
 * </code>
 * </pre>
 */
export declare class CfInputComponent extends CfCoreComponent implements OnInit, ControlValueAccessor {
    /**@hidden */ elementRef: ElementRef;
    /**@hidden */
    writeValue(obj: any): void;
    /**@hidden */
    registerOnChange(fn: any): void;
    /**@hidden */
    registerOnTouched(fn: any): void;
    /**@hidden */
    setDisabledState(isDisabled: boolean): void;
    /**@hidden */
    onChange: any;
    /**@hidden */
    onTouched: any;
    /**@hidden */
    notifacationClickable: string;
    /**@hidden
     * It is Input object which will recive values provided by InputClass Class and after that <b>md-input</b> will be builded on page.
     */
    cfInput: InputModel;
    /**@hidden */
    private val;
    /**
     * <pre>{
     *  display: boolean, // Default: True
     *  disable: boolean, // Default: False
     *  type: string, // Default: 'text'
     *  placeholder: string,
     *  hint: object,
     *  text: string,
     *  align: string //Default: 'start'
     *  prefix: string,
     *  suffix: string,
     *  dividerColor: string,
     *  value: any,
     *  maxlength: number,
     *  iconProperty : IconModel,
     *  menu: MenuModel
     * }
     * </pre>
     */
    properties: InputModel;
    /**
     * <pre>{
     * // styling of the container surrounding the input
     * container: {
     *		dynamic class: function() -> string, //function that returns a string of the name of the class
     *		class: string //name of the class specified in you scss/css file
     *	},
     * // styling of the input
     * input: {
     *		dynamic class: function() -> string,
     *		class: string ,
     *		themeColor: string , // primary/accent/warn
     * },
     * hint: {
     *		dynamic class: function() -> string,
     *		class: string ,
     *		themeColor: string , // primary/accent/warn
     * },
     * iconStyling: IconStylingModel, //refer to icon component
     * menuStyling: MenuStylingModel, //refer to menu component
     *}
     * </pre>
     */
    styling: InputStylingModel;
    /** @hidden
     * It is function for creating Notification click events by using Core Component <b>notificationAction</b> event emmiter.
     * @param notification	it is json notification object
     */
    cfNotificationAction(notification: any): void;
    /**
     * <p> Type of the input if text or password.</p>
     */
    type: string;
    /**
     * <p>Placeholder of the input.</p>
     */
    placeholder: string;
    /**
     * <p> The hint under the input.</p>
     */
    hintText: string;
    /**@hidden
     * <p> The value inside the input (double bound).</p>
     */
    /**@hidden */
    value: string;
    /**
     * <p> The icon name of the input if exists.</p>
     */
    iconName: string;
    /**
     * <p> The event that will be called when the value is changed.</p>
     */
    valueChange: EventEmitter<{}>;
    /**@hidden */
    resetInput(): void;
    /**@hidden */
    constructor(/**@hidden */ elementRef: ElementRef, /**@hidden */ templateService: TemplateService);
    /**@hidden */
    ngOnInit(): void;
    /**@hidden
     * <p> Update the properties object with hte latest inputs on change to keep the component dynaic.</p>
     * @param changes
     */
    ngOnChanges(changes: any): void;
}
