import { PropType, SetupContext, ShallowRef, ExtractPropTypes } from 'vue'; import { StatefulProps } from './useStateful'; import { LoadingProps } from './useLoading'; import { ValidationProps } from './useValidation'; export type SelectableProps = StatefulProps & LoadingProps & ExtractPropTypes> & { arrayValue: V | undefined; leftLabel: boolean; trueValue: any; falseValue: any; indeterminate: boolean; indeterminateValue: V | null; disabled: boolean; readonly: boolean; modelValue: unknown; }; export type Elements = { input: ShallowRef; label: ShallowRef; container: ShallowRef; }; export declare const useSelectableProps: { arrayValue: { type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor)[]; default: null; }; label: { type: StringConstructor; default: string; }; leftLabel: { type: BooleanConstructor; default: boolean; }; trueValue: { type: PropType; default: boolean; }; falseValue: { type: PropType; default: boolean; }; indeterminate: { type: BooleanConstructor; default: boolean; }; indeterminateValue: { type: PropType; default: null; }; disabled: { type: BooleanConstructor; default: boolean; }; readonly: { type: BooleanConstructor; default: boolean; }; name: { type: StringConstructor; default: undefined; }; rules: { type: PropType[]>; default: () => any; }; dirty: { type: BooleanConstructor; default: boolean; }; error: { type: BooleanConstructor; default: undefined; }; errorMessages: { type: PropType; default: undefined; }; errorCount: { type: (StringConstructor | NumberConstructor)[]; default: number; }; success: { type: BooleanConstructor; default: boolean; }; messages: { type: PropType; default: () => never[]; }; immediateValidation: { type: BooleanConstructor; default: boolean; }; modelValue: {}; loading: { type: BooleanConstructor; default: boolean; }; stateful: { type: PropType; default: boolean; }; }; export declare const useSelectableEmits: string[]; export declare const useSelectable: (props: SelectableProps, emit: SetupContext['emit'], { input, label, container }: Elements) => { isDirty: import("vue").Ref; isTouched: import("vue").Ref; isError: import("vue").WritableComputedRef; isLoading: import("vue").WritableComputedRef; isValid: import("vue").ComputedRef; isChecked: import("vue").ComputedRef; isIndeterminate: import("vue").ComputedRef; onBlur: (event: FocusEvent) => void; onFocus: (event: FocusEvent) => void; toggleSelection: () => void; reset: () => void; focus: () => void; computedError: import("vue").ComputedRef; computedErrorMessages: import("vue").ComputedRef; validationAriaAttributes: import("vue").ComputedRef<{ 'aria-invalid': boolean; 'aria-errormessage': string; }>; };