import { type InjectionKey, type Ref, type ComputedRef } from 'vue'; import { type UseEventBusReturn } from '@vueuse/core'; import type { FormFieldProps } from '../types'; import type { FormEvent, FormFieldInjectedOptions, FormInjectedOptions } from '../types/form'; import type { GetObjectField } from '../types/utils'; type Props = { id?: string; name?: string; size?: GetObjectField; color?: GetObjectField; highlight?: boolean; disabled?: boolean; }; export declare const formOptionsInjectionKey: InjectionKey>; export declare const formBusInjectionKey: InjectionKey, string>>; export declare const formFieldInjectionKey: InjectionKey> | undefined>; export declare const inputIdInjectionKey: InjectionKey>; export declare const formInputsInjectionKey: InjectionKey>>; export declare const formLoadingInjectionKey: InjectionKey>>; export declare function useFormField(props?: Props, opts?: { bind?: boolean; deferInputValidation?: boolean; }): { id: ComputedRef; name: ComputedRef; size: ComputedRef<"xs" | "sm" | "md" | "lg" | "xl" | NonNullable> | undefined>; color: ComputedRef<"error" | GetObjectField | undefined>; highlight: ComputedRef; disabled: ComputedRef; emitFormBlur: () => void; emitFormInput: import("@vueuse/shared").UseDebounceFnReturn<() => void>; emitFormChange: () => void; emitFormFocus: () => void; ariaAttrs: ComputedRef<{ 'aria-describedby': string; 'aria-invalid': boolean; } | undefined>; }; export {};