import type { Ref } from 'vue'; import { KottiField } from './types'; export declare const useField: ({ emit, isEmpty, props, supports, }: KottiField.Hook.Parameters) => KottiField.Hook.Returns; export declare const useInput: (fieldId: string) => { clickInput: () => void; focusInput: () => void; }; /** * Vue doesn't support controlled input fields without explicitly re-rendering. * Therefore, in case nothing changed, we may need to re-render * * @description Vue doesn't alter native html input behavior; that is, the emitted value is immediately bound to :value * We need to force the component to re-render with the value that we actually last wanted to bind to `:value` * The emitted value doesn't immediately have to be the actually bound value; making the input `controlled` */ export declare const useForceUpdate: () => { forceUpdate: () => void; forceUpdateKey: Ref; }; export declare const useKtFieldRef: () => Ref<{ inputContainerRef: HTMLDivElement; inputContainerWrapperRef: HTMLDivElement; } | null>; export declare const useEmitBlur: ({ emit, field, fieldTarget, findEventTarget, valueOverride, }: { emit: (event: "blur", value: T | null) => void; field: KottiField.Hook.Returns; fieldTarget: Ref | HTMLElement | null>; findEventTarget?: (target: EventTarget | null) => EventTarget | null; valueOverride?: T | null; }) => void;