/// <reference types="react" />
/*!
 * Copyright (c) Microsoft. All rights reserved.
 * Licensed under the MIT license. See LICENSE file in the project.
 */
import { Verb } from '@data-wrangling-components/core';
import type { IContextualMenuItem } from '@fluentui/react';
/**
 * Business logic to manage a list of items, a filtered copy, and a search handler
 */
export declare function useSearchableItems(): {
    items: IContextualMenuItem[];
    filtered: IContextualMenuItem[];
    onSearch: (results: IContextualMenuItem[]) => void;
    onSearchReset: () => void;
};
/**
 * Creates a controlled component by accepting a verb from outside, but also tracking internally with an effect
 * @param verb
 * @param onChange - handler for verb changes via dropdown or dropdown + click
 * @param requireClick - indicates that the button click handler must be invoked for onChange to fure
 * @returns
 */
export declare function useSelectedOption(verb: Verb | undefined, onChange?: (verb: Verb) => void, requireButtonClick?: boolean, placeholder?: string): {
    text?: string;
    onButtonClick: () => void;
    onItemClick: (ev?: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>, item?: IContextualMenuItem) => boolean | void;
};
/**
 * Displays either the selected option or the placeholder
 * @param selected
 * @param placeholder
 * @returns
 */
export declare function useDropdownButtonText(selected?: string, placeholder?: string): string | undefined;
