import { type HTMLAttributes, type RendererElement, type VNode } from 'vue';
import { type SearchAttribute } from './common';
import { type OUIAProps } from '../../helpers/ouia';
export { SearchInputKey, type SearchAttribute, type SearchInputProvide } from './common';
interface Props extends OUIAProps, /* @vue-ignore */ HTMLAttributes {
/** Flag indicating if search input is disabled. */
disabled?: boolean;
/** An accessible label for the search input. Defaults to the `searchInput` message. */
ariaLabel?: string;
/** Placeholder text of the search input. */
placeholder?: string;
/** A suggestion for autocompleting. */
hint?: string;
/** Name attribute for the search input. */
name?: string;
/** Type of the input */
type?: 'text' | 'date' | 'datetime-local' | 'email' | 'month' | 'number' | 'password' | 'search' | 'tel' | 'time' | 'url';
/** Additional attributes added to the search input element, such as its id. */
inputAttrs?: Record;
/** Flag to always display the utilities. By default they are only displayed when the search input has a value. */
utilitiesDisplayed?: boolean;
/** z-index of the advanced search form when appendTo is not inline. */
zIndex?: number;
/** Label for the button which resets the advanced search form and clears the search input. Defaults to the `searchInputReset` message. */
resetButtonLabel?: string;
/** Label for the button which calls the onSearch event handler. Defaults to the `searchInputSubmit` message. */
submitSearchButtonLabel?: string;
/** Accessible label for the button which opens the advanced search form menu. Defaults to the `searchInputOpenMenu` message. */
openMenuButtonAriaLabel?: string;
/** Accessible label for the button to navigate to previous result. Defaults to the `searchInputPrevious` message. */
previousNavigationButtonAriaLabel?: string;
/** Flag indicating if the previous navigation button is disabled. */
previousNavigationButtonDisabled?: boolean;
/** Accessible label for the button to navigate to next result. Defaults to the `searchInputNext` message. */
nextNavigationButtonAriaLabel?: string;
/** Flag indicating if the next navigation button is disabled. */
nextNavigationButtonDisabled?: boolean;
/** The number of search results returned. Either a total number of results,
* or a string representing the current result over the total number of results. i.e. "1 / 5". */
resultsCount?: number | string;
/** Screenreader text that will appear after resultsCount to give context for what that value represents to assistive technologies. Defaults to the `searchInputResults` message. */
resultsCountContext?: string;
/** Array of attribute values used for dynamically generated advanced search. */
attributes?: string[] | SearchAttribute[];
/** Attribute label for strings unassociated with one of the provided listed attributes. Defaults to the `searchInputWords` message. */
wordsAttrLabel?: string;
/** Makes the search input expandable/collapsible through a toggle button. */
expandable?: boolean;
/** An accessible label for the expandable search input toggle. */
expandButtonAriaLabel?: string;
/** Flag indicating animations should be enabled when the expandable search input expands and collapses. */
animations?: boolean;
/** Delimiter in the query string for pairing attributes with search values.
* Required whenever attributes are passed as props.
*/
advancedSearchDelimiter?: string;
/** The container to append the advanced search menu to. Defaults to the element wrapping the search input;
* "inline" renders the menu in the document flow instead of floating it.
* If your menu is being cut off you can append it to an element higher up the DOM tree.
* Some examples:
* append-to="body"
* append-to="#element-id"
*/
appendTo?: 'inline' | string | RendererElement | null;
/** A callback for when the user clicks the clear button. */
onClear?: (event: Event) => void;
/** A callback for when the user clicks to navigate to next result. */
onNextClick?: (event: Event) => void;
/** A callback for when the user clicks to navigate to previous result. */
onPreviousClick?: (event: Event) => void;
/** A callback for when the open advanced search button is clicked. */
onToggleAdvancedSearch?: (event: Event, isOpen?: boolean) => void;
/** A callback for when the search button is clicked. */
onSearch?: (value: string, event: Event, attrValueMap: Record) => void;
}
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: __VLS_WithSlots;
/** Focuses the search input. */
focus(options?: FocusOptions): void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
"update:modelValue": (value: string) => any;
"update:expanded": (value: boolean) => any;
"update:advancedSearchOpen": (value: boolean) => any;
}, string, import("vue").PublicProps, Readonly & Readonly<{
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
"onUpdate:advancedSearchOpen"?: ((value: boolean) => any) | undefined;
}>, {
type: "number" | "search" | "time" | "text" | "date" | "datetime-local" | "email" | "month" | "password" | "tel" | "url";
attributes: string[] | SearchAttribute[];
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
[K: `attribute:${string}`]: (props?: Record) => VNode[];
/** Attribute label for strings unassociated with one of the provided listed attributes. */
'words-attr-label'?: (props?: Record) => VNode[];
/** Additional elements added after the attributes in the advanced search form. */
'form-additional-items'?: (props?: Record) => VNode[];
}>;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};
//# sourceMappingURL=SearchInput.vue.d.ts.map