import { Template } from '@bluepic/types';
import { VNode } from 'vue';
import { Localized, RichTextOption, RichTextFeature } from '@bluepic/types';
type __VLS_Props = {
    size?: 'small' | 'medium' | 'large';
    loading?: boolean;
    round?: boolean;
    disabled?: boolean;
    inputProps?: {
        [k: string]: string;
    };
    placeholder?: string;
    validator?: (value: string) => boolean;
    maxLength?: number;
    maxLineLength?: number;
    maxLines?: number;
    showWordCount?: boolean;
    type?: 'text' | 'password' | 'number' | 'email' | 'tel' | 'textarea';
    state?: 'default' | 'success' | 'error' | 'info';
    clearable?: boolean;
    resizeable?: boolean;
    richtext?: {
        options: RichTextOption[];
        userAgentRichText: boolean;
        noStyleLabel: Localized<string>;
        mixedStyleLabel: Localized<string>;
    };
    maxHeight?: string;
    readonly?: boolean;
};
type __VLS_Slots = {
    prefix?: () => VNode[];
    suffix?: () => VNode[];
    loading?: () => VNode[];
};
type __VLS_PublicProps = __VLS_Props & {
    'modelValue'?: string | number | boolean | RichTextFeature[];
};
declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {
    inputEelRef: import("vue").Ref<HTMLInputElement | HTMLTextAreaElement | undefined, HTMLInputElement | HTMLTextAreaElement | undefined>;
    setFocus(focus: boolean): void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    blur: () => any;
    focus: () => any;
    "update:modelValue": (value: string | number | boolean | Template.Fields.RichTextFeature[]) => any;
    enter: (event: KeyboardEvent) => any;
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    onBlur?: (() => any) | undefined;
    onFocus?: (() => any) | undefined;
    "onUpdate:modelValue"?: ((value: string | number | boolean | Template.Fields.RichTextFeature[]) => any) | undefined;
    onEnter?: ((event: KeyboardEvent) => any) | undefined;
}>, {
    type: "text" | "password" | "number" | "email" | "tel" | "textarea";
    maxLength: number;
    maxLines: number;
    maxLineLength: number;
    showWordCount: boolean;
    clearable: boolean;
    maxHeight: string;
    size: "small" | "medium" | "large";
    readonly: boolean;
    round: boolean;
    disabled: boolean;
    state: "default" | "success" | "error" | "info";
    loading: boolean;
    inputProps: {
        [k: string]: string;
    };
    resizeable: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
