import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { ExtractPropTypes } from 'vue';
import { PropType } from 'vue';
import { PublicProps } from 'vue';

declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;

declare type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: PropType<T[K]>;
        required: true;
    };
};

declare type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<InlineEditProps>, {
format: string;
type: string;
modelValue: undefined;
oldValue: undefined;
label: string;
placeholder: string;
errorText: string;
hintText: string;
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:model-value": (value: string | number | undefined) => void;
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<InlineEditProps>, {
format: string;
type: string;
modelValue: undefined;
oldValue: undefined;
label: string;
placeholder: string;
errorText: string;
hintText: string;
}>>> & Readonly<{
"onUpdate:model-value"?: ((value: string | number | undefined) => any) | undefined;
}>, {
type: string;
label: string;
placeholder: string;
errorText: string;
hintText: string;
modelValue: string | number;
format: "" | "currency" | "percent";
oldValue: string | number;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
    prepend?(_: {}): any;
    append?(_: {}): any;
}>;
export default _default;

export declare interface InlineEditProps {
    /**
     * Formats the value displayed.
     * Options: currency, percent
     */
    format?: 'currency' | 'percent' | '';
    /**
     * DOM `type` property to be passed to `ll-input`.
     * Use type="number" for localized numbers
     */
    type?: string;
    /**
     * The current value for the component.
     */
    modelValue?: string | number;
    /**
     * Used to display a crossed out value below the component
     * if the current `modelValue` does not match `oldValue`.
     */
    oldValue?: string | number;
    /**
     * Label to render for the input
     */
    label?: string;
    /**
     * Placeholder for the input
     */
    placeholder?: string;
    /**
     * Error text to display. Replaces `hintText` (if provided) & adds error styling.
     */
    errorText?: string;
    /**
     * Hint text to display below the input
     */
    hintText?: string;
}

export { }
