import { PluginObject } from 'vue';
import { InputSelectable } from '../../utils/input/input';
import { ModulVue } from '../../utils/vue/vue';
export declare enum MTextfieldType {
    Text = "text",
    Password = "password",
    Email = "email",
    Url = "url",
    Telephone = "tel",
    Number = "number"
}
export declare class MTextfield extends ModulVue implements InputSelectable {
    readonly type: MTextfieldType;
    readonly icon: boolean;
    readonly wordWrap: boolean;
    readonly characterCount: boolean;
    readonly maxLength: number;
    readonly lengthOverflow: boolean;
    readonly characterCountThreshold: number;
    readonly selection: string;
    readonly id: string;
    readonly inputAriaDescribedby: string;
    readonly inputAriaActivedescendant?: string;
    readonly inputAriaAutocomplete?: string;
    readonly inputAriaControls?: string;
    readonly append: boolean;
    readonly refInput?: HTMLInputElement;
    $refs: {
        input: HTMLElement;
    };
    readonly internalValue: string;
    private passwordAsText;
    private iconDescriptionShowPassword;
    private iconDescriptionHidePassword;
    protected created(): void;
    protected mounted(): void;
    private typeChanged;
    private inputTypeChanged;
    private wordWrapChanged;
    private togglePasswordVisibility;
    get inputType(): MTextfieldType;
    private get passwordIcon();
    private get passwordIconName();
    private get passwordIconDescription();
    private get hasWordWrap();
    get valueLength(): number;
    private get maxLengthNumber();
    private get hasTextfieldError();
    private get isTextfieldValid();
    private get hasCounterTransition();
    private resetModel;
    updateSelection(): void;
}
declare const TextfieldPlugin: PluginObject<any>;
export default TextfieldPlugin;
//# sourceMappingURL=textfield.d.ts.map