import { type HTMLAttributes, type InputHTMLAttributes } from "vue";
import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type MultiValueProps, type SuggestionsProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js";
type WrapperTypes = WrapperProps<"suggestions", HTMLAttributes> & WrapperProps<"wrapper", HTMLAttributes> & WrapperProps<"inner-wrapper", HTMLAttributes>;
type RealProps = SuggestionsProps & LinkableByIdProps & LabelProps & BaseInteractiveProps & MultiValueProps & {
suggestions?: SuggestionsProps["suggestions"];
valid?: boolean;
};
interface Props extends
/** @vue-ignore */
Partial & TailwindClassProp>,
/** @vue-ignore */
Partial, RealProps {
}
declare const _default: __VLS_WithTemplateSlots string;
isOpen: boolean;
open: () => void;
close: () => void;
enterSelected: () => void;
enterSuggestion: (num: number) => void;
toggle: () => void;
cancel: () => void;
select: (num: number) => void;
prev: () => void;
next: () => void;
first: () => void;
last: () => void;
};
el: HTMLElement | null;
inputKeydownHandler: (e: KeyboardEvent) => void;
inputBlurHandler: (e: MouseEvent) => void;
inputFocusHandler: (e: FocusEvent) => void;
} | null, import("vue").ShallowUnwrapRef<{
suggestions: {
list: any[] | undefined;
filtered: any[] | undefined;
active: number;
available: boolean;
moreThanOneAvailable: boolean;
hasExactlyMatching: string | object | undefined;
hasValidSuggestion: boolean;
openable: boolean | undefined;
getLabel: (item: string | object) => string;
isOpen: boolean;
open: () => void;
close: () => void;
enterSelected: () => void;
enterSuggestion: (num: number) => void;
toggle: () => void;
cancel: () => void;
select: (num: number) => void;
prev: () => void;
next: () => void;
first: () => void;
last: () => void;
};
el: import("vue").Ref;
inputKeydownHandler: (e: KeyboardEvent) => void;
inputBlurHandler: (e: MouseEvent) => void;
inputFocusHandler: (e: FocusEvent) => void;
}> | {
suggestions: {
list: any[] | undefined;
filtered: any[] | undefined;
active: number;
available: boolean;
moreThanOneAvailable: boolean;
hasExactlyMatching: string | object | undefined;
hasValidSuggestion: boolean;
openable: boolean | undefined;
getLabel: (item: string | object) => string;
isOpen: boolean;
open: () => void;
close: () => void;
enterSelected: () => void;
enterSuggestion: (num: number) => void;
toggle: () => void;
cancel: () => void;
select: (num: number) => void;
prev: () => void;
next: () => void;
first: () => void;
last: () => void;
};
el: HTMLElement | null;
inputKeydownHandler: (e: KeyboardEvent) => void;
inputBlurHandler: (e: MouseEvent) => void;
inputFocusHandler: (e: FocusEvent) => void;
} | null>;
el: import("vue").Ref;
inputValue: import("vue").Ref;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
"update:values": (values: string[] | undefined) => any;
"update:modelValue": (modelValue: string) => any;
} & {
blur: (val: FocusEvent) => any;
focus: (val: FocusEvent) => any;
input: (val: InputEvent) => any;
keydown: (val: KeyboardEvent) => any;
submit: (val: string, suggestion?: any) => any;
indicatorClick: (val: MouseEvent) => any;
}, string, import("vue").PublicProps, Readonly<{
values?: string[] | undefined;
modelValue: string;
} & Props> & Readonly<{
onBlur?: ((val: FocusEvent) => any) | undefined;
onFocus?: ((val: FocusEvent) => any) | undefined;
onInput?: ((val: InputEvent) => any) | undefined;
onKeydown?: ((val: KeyboardEvent) => any) | undefined;
onSubmit?: ((val: string, suggestion?: any) => any) | undefined;
"onUpdate:values"?: ((values: string[] | undefined) => any) | undefined;
"onUpdate:modelValue"?: ((modelValue: string) => any) | undefined;
onIndicatorClick?: ((val: MouseEvent) => any) | undefined;
}>, {
disabled: boolean;
readonly: boolean;
border: boolean;
unstyle: boolean;
valid: boolean;
suggestions: any[];
updateOnlyOnSubmit: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
label?(_: {
label: string | undefined;
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
}): any;
default?(_: {
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
}): any;
left?(_: {
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
}): any;
input?(_: {
suggestionsIndicatorClickHandler: (e: MouseEvent) => void;
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
class: undefined;
canEdit: boolean;
"aria-autocomplete": "both" | undefined;
"aria-controls": string | undefined;
role: string | undefined;
"aria-expanded": boolean | undefined;
"aria-activedescendant": string | undefined;
border: boolean;
isValid: boolean;
onKeydown: (e: KeyboardEvent) => void;
onBlur: (e: FocusEvent) => void;
onFocus: (e: FocusEvent) => void;
modelValue: any;
"onUpdate:modelValue": (e: string) => void;
onSubmit: (e: string) => void;
}): any;
indicator?(_: {
isOpen: boolean;
suggestionsIndicatorClickHandler: (e: MouseEvent) => void;
}): any;
values?(_: {
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
class: undefined;
hasSlotRight: boolean;
label: string | undefined;
border: boolean;
values: string[] | undefined;
"onUpdate:values": (e: string[]) => string[];
}): any;
right?(_: {
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
}): any;
suggestions?(_: {
id: string;
isOpen: boolean;
valid: boolean;
disabled: boolean;
readonly: boolean;
class: undefined;
suggestions: any[] | undefined;
allowOpenEmpty: boolean;
restrictToSuggestions: boolean;
suggestionLabel: ((item: any) => string) | undefined;
suggestionsFilter: ((input: string | number, items: any[]) => any[]) | undefined;
modelValue: string;
inputValue: any;
isValid: boolean;
"onUpdate:inputValue": (e: string) => string;
onSubmit: (e: string, suggestion: any) => void;
"onUpdate:isOpen": (e: boolean) => void;
"onUpdate:activeSuggestion": (e: number) => number;
}): any;
"suggestion-item"?(_: {
item: any;
index: number;
}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots = T & {
new (): {
$slots: S;
};
};
//# sourceMappingURL=LibInput.vue.d.ts.map