/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { SpeechToTextButtonProps } from '@progress/kendo-react-buttons';
import { GridSmartBoxSearchProps, GridSmartBoxSemanticSearchConfigProps, GridSmartBoxAIAssistantConfigProps, SmartBoxMode } from '../interfaces/index.js';
import { GridSmartBoxHistoryProps } from '../interfaces/utilTypes.js';
import * as React from 'react';
/**
 * Represents the props for the useSmartBoxModes hook.
 *
 * @hidden
 */
export interface UseSmartBoxModesProps {
    /**
     * The search mode configuration prop from the component.
     * Can be a boolean to enable/disable or an object with detailed settings.
     */
    searchConfigProp: boolean | GridSmartBoxSearchProps | undefined;
    /**
     * The semantic search mode configuration prop from the component.
     * Can be a boolean to enable/disable or an object with detailed settings.
     */
    semanticSearchConfigProp: boolean | GridSmartBoxSemanticSearchConfigProps | undefined;
    /**
     * The AI assistant mode configuration prop from the component.
     * Can be a boolean to enable/disable or an object with detailed settings.
     */
    aiAssistantConfigProp: boolean | GridSmartBoxAIAssistantConfigProps | undefined;
    /**
     * The active mode prop from the component.
     * Used to control which mode is initially selected.
     */
    activeModeProp: SmartBoxMode | undefined;
    /**
     * The shared history settings prop from the component.
     * When set, overrides individual mode history settings.
     */
    sharedHistory: boolean | GridSmartBoxHistoryProps | undefined;
}
/**
 * Represents the return value of the useSmartBoxModes hook.
 *
 * @hidden
 */
export interface UseSmartBoxModesReturn {
    /**
     * The normalized search mode configuration or null if disabled.
     */
    searchMode: GridSmartBoxSearchProps | null;
    /**
     * The normalized semantic search mode configuration or null if disabled.
     */
    semanticSearchMode: GridSmartBoxSemanticSearchConfigProps | null;
    /**
     * The normalized AI assistant mode configuration or null if disabled.
     */
    aiAssistantMode: GridSmartBoxAIAssistantConfigProps | null;
    /**
     * The currently selected view mode based on activeMode prop and enabled modes.
     */
    selectedView: SmartBoxMode | null;
    /**
     * The internal state for the selected view.
     */
    selectedViewState: SmartBoxMode | null;
    /**
     * State setter function for the selected view.
     */
    setSelectedViewState: React.Dispatch<React.SetStateAction<SmartBoxMode | null>>;
    /**
     * The last selected search mode ('search' or 'semanticSearch').
     * Used to restore the previous search mode when switching back from AI Assistant.
     */
    lastSearchMode: 'search' | 'semanticSearch' | null;
    /**
     * State setter function for the last search mode.
     */
    setLastSearchMode: React.Dispatch<React.SetStateAction<'search' | 'semanticSearch' | null>>;
    /**
     * The normalized history settings for search mode.
     */
    searchHistorySettings: GridSmartBoxHistoryProps | null;
    /**
     * The normalized history settings for semantic search mode.
     */
    semanticSearchHistorySettings: GridSmartBoxHistoryProps | null;
    /**
     * The normalized history settings for AI assistant mode.
     */
    aiAssistantHistorySettings: GridSmartBoxHistoryProps | null;
    /**
     * The normalized speech-to-text button settings or null if disabled.
     */
    speechToTextButtonSettings: SpeechToTextButtonProps | null;
    /**
     * The current search delay in milliseconds based on the selected mode.
     */
    currentSearchDelay: number;
}
/**
 * Hook to manage SmartBox mode configurations.
 *
 * This hook normalizes the mode configuration props, manages the selected view state,
 * and computes derived values like history settings and speech-to-text button settings.
 *
 * @param props - The hook properties.
 * @returns An object containing normalized mode configurations and state management functions.
 *
 * @hidden
 */
export declare function useSmartBoxModes({ searchConfigProp, semanticSearchConfigProp, aiAssistantConfigProp, activeModeProp, sharedHistory }: UseSmartBoxModesProps): UseSmartBoxModesReturn;
