import { EventEmitter, ChangeDetectorRef, OnDestroy, AfterViewInit, ElementRef, OnInit } from '@angular/core';
import { NgForm, FormGroup } from '@angular/forms';
import { SdInputSuffixDirective } from './directives/input-suffix.directive';
import { SdFormControl } from '@sd-angular/core/common';
import { SdViewDefDirective, SdLabelDefDirective } from '@sd-angular/core/common';
import { SdUtilityService } from '@sd-angular/core/utility';
import { IFormConfiguration } from '@sd-angular/core/common';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { MatTooltip } from '@angular/material/tooltip';
export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
    #private;
    private ref;
    private formConfig;
    private utilityService;
    id: string;
    set name(val: string);
    appearance: MatFormFieldAppearance;
    size: 'sm' | 'lg';
    set form(val: NgForm | FormGroup);
    qcId: string;
    label: string;
    set _label(val: string);
    placeholder: string;
    type: 'text' | 'number' | 'password' | 'email' | 'datetime-local' | 'month';
    disableErrorMessage: boolean;
    set _disableErrorMessage(val: boolean | '');
    set _blurOnEnter(val: boolean | '');
    set model(value: any);
    modelChange: EventEmitter<any>;
    isRequired: boolean;
    set required(val: boolean | '');
    isReadonly: boolean;
    set readonly(val: boolean | '');
    minlength: number;
    set pMinlength(val: number);
    maxlength: number;
    set pMaxlength(val: number);
    set pattern(val: string);
    set validator(validator: (value: any) => string | Promise<string>);
    set disabled(val: boolean | '');
    icon: string;
    hideIcon: boolean;
    set _hideIcon(val: boolean | '');
    sdClickIcon: EventEmitter<any>;
    tooltip: string | ((inputValue: string) => string);
    sdChange: EventEmitter<any>;
    sdFocus: EventEmitter<any>;
    sdBlur: EventEmitter<any>;
    sdFocusForceBlur: EventEmitter<any>;
    keyupEnter: EventEmitter<any>;
    control: ElementRef;
    sdInputSuffix: SdInputSuffixDirective;
    sdLabelDef: SdLabelDefDirective;
    formControl: SdFormControl;
    sdView: SdViewDefDirective;
    isFocused: boolean;
    copyTooltip: MatTooltip;
    copyable: boolean;
    set _copyable(val: boolean | '');
    copied: boolean;
    constructor(ref: ChangeDetectorRef, formConfig: IFormConfiguration, utilityService: SdUtilityService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    reValidate: () => void;
    onKeyupEnter: () => void;
    onClickIcon: (event: Event) => void;
    onFocus: () => void;
    onBlur: () => void;
    onClick: () => void;
    blur: () => void;
    focus: () => void;
    onCopyText(): void;
}
