import React from 'react'; import { TopNavigationProps } from './interfaces'; interface UseTopNavigationParams { identity: TopNavigationProps['identity']; search: TopNavigationProps['search']; utilities: NonNullable; } interface ResponsiveState { hideUtilityText?: boolean; hideSearch?: boolean; hideUtilities?: number[]; hideTitle?: boolean; } export interface TopNavigationSizeConfiguration { hasSearch: boolean; availableWidth: number; utilitiesLeftPadding: number; fullIdentityWidth: number; titleWidth: number; searchSlotWidth: number; searchUtilityWidth: number; utilityWithLabelWidths: number[]; utilityWithoutLabelWidths: number[]; menuTriggerUtilityWidth: number; } interface UseTopNavigation { mainRef: React.Ref; virtualRef: React.Ref; responsiveState: ResponsiveState; breakpoint: 'default' | 'xxs' | 's'; isSearchExpanded: boolean; onSearchUtilityClick: () => void; } export declare function useTopNavigation({ identity, search, utilities }: UseTopNavigationParams): UseTopNavigation; /** * Generates the series of responsive steps that can be performed on the header in order. */ export declare function generateResponsiveStateKeys(utilities: ReadonlyArray, canHideSearch: boolean, canHideTitle: boolean): ReadonlyArray; /** * Determines the best responsive state configuration of the top navigation, based on the given list of possible responsive states * and the current sizes of all elements inside the navigation bar. */ export declare function determineBestResponsiveState(possibleStates: ReadonlyArray, sizes: TopNavigationSizeConfiguration): ResponsiveState; export {};