/** * Copyright IBM Corp. 2024, 2024 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import React, { PropsWithChildren, ReactNode } from 'react'; import PropTypes from 'prop-types'; type Scopes = string[] | object[]; export interface SearchBarProps extends PropsWithChildren { /** @type {string} Optional additional class name. */ className?: string; /** @type {string} The label text for the search text input. */ clearButtonLabelText: string; /** * Whether or not the scopes MultiSelect label is visually hidden. */ hideScopesLabel?: boolean; /** @type {string} The label text for the search text input. */ labelText: string; /** @type {Function} Function handler for when the user changes their query search. */ onChange?: (event: any) => void; /** @type {Function} Function handler for when the user submits a search. */ onSubmit?: (event: any) => void; /** @type {string} Placeholder text to be displayed in the search input. */ placeholderText: string; /** @type {Function} Function to get the text for each scope to display in dropdown. */ scopeToString?: (item: string | object) => string; /** @type {Array} Array of allowed search scopes. */ scopes?: Scopes; /** @type {string} The name text for the search scope type. */ scopesTypeLabel?: NonNullable; /** @type {Array Array of initially selected search scopes. */ selectedScopes?: Scopes; /** * Optional custom sorting algorithm for an array of scope items. * By default, scope items are sorted in ascending alphabetical order, * with "selected" items moved to the start of the scope items array. */ sortItems?: (items: readonly unknown[]) => unknown[]; /** @type {string} The label text for the search submit button. */ submitLabel: string; /** * Provide accessible label text for the scopes MultiSelect. */ titleText?: string; /** @type {func} Callback function for translating MultiSelect's child ListBoxMenuIcon SVG title. */ translateWithId?: (messageId: 'close.menu' | 'open.menu' | 'clear.all' | 'clear.selection') => string; /** @type {string} Search query value. */ value?: string; } export declare const SearchBar: React.ForwardRefExoticComponent>; export declare const deprecatedProps: { /** * **Deprecated** * * Provide accessible label text for the scopes MultiSelect. */ titleText: PropTypes.Requireable; }; export {}; //# sourceMappingURL=SearchBar.d.ts.map