import { type HTMLAttributes } from "vue";
import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type MultiValueProps, type SuggestionsEmits, type SuggestionsProps, type WrapperProps } from "../shared/props.js";
type WrapperTypes = Partial>;
type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & MultiValueProps & {
/** Return true to prevent the keydown event from being handled. */
filterKeydown?: (e: KeyboardEvent) => boolean;
/** Return true to prevent the blur event from being handled. */
filterBlur?: (e: MouseEvent) => boolean;
/** Return true to prevent the focus event from being handled. */
filterFocus?: (e: FocusEvent) => boolean;
};
interface Props extends
/** @vue-ignore */
Partial & {
/** Tailwind classes. */
class?: string;
}>,
/** @vue-ignore */
WrapperTypes, RealProps {
}
declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_PrettifyLocal>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{
props: __VLS_PrettifyLocal & Omit<{
readonly onSubmit?: ((val: string, suggestion?: any) => any) | undefined;
readonly "onUpdate:isOpen"?: ((val: boolean) => any) | undefined;
readonly "onUpdate:activeSuggestion"?: ((val: number) => any) | undefined;
readonly "onUpdate:modelValue"?: ((modelValue: string) => any) | undefined;
readonly "onUpdate:inputValue"?: ((inputValue: string) => any) | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{}> & Readonly<{
onSubmit?: ((val: string, suggestion?: any) => any) | undefined;
"onUpdate:isOpen"?: ((val: boolean) => any) | undefined;
"onUpdate:activeSuggestion"?: ((val: number) => any) | undefined;
"onUpdate:modelValue"?: ((modelValue: string) => any) | undefined;
"onUpdate:inputValue"?: ((inputValue: string) => any) | undefined;
}>, never>, "onSubmit" | "onUpdate:modelValue" | "onUpdate:isOpen" | "onUpdate:activeSuggestion" | "onUpdate:inputValue"> & ({
modelValue: string;
inputValue?: string;
} & Props & SuggestionsProps)> & import("vue").PublicProps;
expose(exposed: import("vue").ShallowUnwrapRef<{
suggestions: {
list: any[] | undefined;
filtered: any[] | undefined;
active: number;
available: boolean;
moreThanOneAvailable: boolean;
hasExactlyMatching: TSuggestion | undefined;
hasValidSuggestion: boolean;
openable: boolean | undefined;
getLabel: (item: TSuggestion) => 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;
/** A simple keydown handler that can be passed to an input to control the component while still focused inside it. */
inputKeydownHandler: (e: KeyboardEvent) => void;
/** A blur handler for the input that controls the component. This also takes care of making clicking on a suggestion work, since otherwise if canOpen is set to false in the blur handler, no click event will fire. */
inputBlurHandler: (e: MouseEvent) => void;
/** A focus handler for the input that controls the component. */
inputFocusHandler: (e: FocusEvent) => void;
}>): void;
attrs: any;
slots: {
item?(_: {
item: any;
index: number;
}): any;
};
emit: SuggestionsEmits & {
'update:modelValue': [modelValue: string];
'update:inputValue': [inputValue: string];
};
}>) => import("vue").VNode & {
__ctx?: Awaited;
};
export default _default;
type __VLS_PrettifyLocal = {
[K in keyof T]: T[K];
} & {};
//# sourceMappingURL=LibSuggestions.vue.d.ts.map