import * as React from 'react';
import { Events } from '../../coreUtils/events';
/**
 * Props for {@link UnifiedSearch} component.
 *
 * @see {@link UnifiedSearch}
 */
export interface UnifiedSearchProps {
    /**
     * Available sections (providers) to search with.
     */
    sections: ReadonlyArray<UnifiedSearchSection>;
    /**
     * Event bus to listen commands for this component.
     */
    commands?: Events<UnifiedSearchCommands>;
    /**
     * Default (initial) width for the component, including
     * the search input and the dropdown.
     *
     * @default 300
     */
    defaultWidth?: number;
    /**
     * Default (initial) height for the component
     * when the dropdown is expanded.
     *
     * @default 350
     */
    defaultHeight?: number;
    /**
     * Minimum width for the dropdown when resized.
     *
     * @default 200
     */
    minWidth?: number;
    /**
     * Minimum height for the dropdown when resized.
     *
     * @default 150
     */
    minHeight?: number;
    /**
     * Offset from right side of the canvas viewport to limit max width.
     *
     * @default 20
     */
    offsetWithMaxWidth?: number;
    /**
     * Offset from bottom side of the canvas viewport to limit max width.
     *
     * @default 20
     */
    offsetWithMaxHeight?: number;
    /**
     * Placeholder text for the search input.
     *
     * @default "Search for..."
     */
    placeholder?: string;
}
/**
 * Section (provider) to search with in {@link UnifiedSearch}.
 *
 * @see {@link UnifiedSearchProps}
 */
export interface UnifiedSearchSection {
    /**
     * Unique section key (arbitrary string).
     */
    readonly key: string;
    /**
     * Section label to display in the search.
     */
    readonly label: React.ReactNode;
    /**
     * Section title to display on hover.
     */
    readonly title?: string;
    /**
     * Component to provide and display search results.
     *
     * To access provided search context, use {@link useUnifiedSearchSection} hook.
     */
    readonly component: React.ReactNode;
}
/**
 * Events for {@link UnifiedSearch} event bus.
 *
 * @see {@link UnifiedSearch}
 */
export interface UnifiedSearchCommands {
    /**
     * Can be triggered to focus on the unified search input and switch to
     * the specified section if needed.
     */
    focus: {
        /**
         * Key of the section to activate.
         */
        readonly sectionKey?: string;
    };
}
/**
 * Component to display a search input with a dropdown for results.
 *
 * One or many available search sections (providers) can be specified via
 * {@link UnifiedSearchProps.sections sections} prop.
 *
 * @category Components
 */
export declare function UnifiedSearch(props: UnifiedSearchProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=unifiedSearch.d.ts.map