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 {
    type: MTextfieldType;
    icon: boolean;
    wordWrap: boolean;
    characterCount: boolean;
    maxLength: number;
    lengthOverflow: boolean;
    characterCountThreshold: number;
    selection: string;
    id: string;
    inputAriaDescribedby: string;
    inputAriaActivedescendant?: string;
    inputAriaAutocomplete?: string;
    inputAriaControls?: string;
    append: boolean;
    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