import './pl-text-field.scss';
import type { Equal } from '@milaboratories/helpers';
/** Component for one-line string data manipulation */
declare const _default: <M, E = string, C = E>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly "onUpdate:modelValue"?: ((value: Equal<M, E | C> extends true ? M : never) => any) | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & Partial<{}> & ({
        modelValue: Equal<M, E | C> extends true ? M : never;
    } & {
        /**
         * The label to display above the input field.
         */
        label?: string;
        /**
         * If `true`, a clear icon will appear in the input field to clear the value (set it to empty string).
         * Or you can pass a callback that returns a custom "empty" value (null | undefined | string)
         */
        clearable?: boolean | (() => C);
        /**
         * An optional callback to parse and/or cast the value, the return type overrides the model type.
         * The callback must throw an exception if the value is invalid
         */
        parse?: (v: string) => E;
        /**
         * If `true`, the input field is marked as required.
         */
        required?: boolean;
        /**
         * An error message to display below the input field.
         */
        error?: string;
        /**
         * A helper text to display below the input field when there are no errors.
         */
        helper?: string;
        /**
         * A placeholder text to display inside the input field when it is empty.
         */
        placeholder?: string;
        /**
         * If `true`, the input field is disabled and cannot be interacted with.
         */
        disabled?: boolean;
        /**
         * If `true`, the input field has a dashed border.
         */
        dashed?: boolean;
        /**
         * A prefix text to display inside the input field before the value.
         */
        prefix?: string;
        /**
         * An array of validation rules to apply to the input field. Each rule is a function that takes the current value and returns `true` if valid or an error message if invalid.
         */
        rules?: ((v: string) => boolean | string)[];
        /**
         * The string specifies whether the field should be a password or not, value could be "password" or undefined.
         */
        type?: "password";
    })> & import("vue").PublicProps;
    expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: {
        tooltip?(_: {}): any;
        append?(_: {}): any;
    };
    emit: (evt: "update:modelValue", value: Equal<M, E | C> extends true ? M : never) => void;
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
