import { ReactNode } from 'react';
import { CompletionStatusType, ExpenseAutomationReconciliationViewTab, ExpenseAutomationTransactionsTab, ExpenseAutomationViewType, FetchState, ID, MissingReceiptsTab, TransactionFilterEntityType, TransactionFilters } from '@zeniai/client-epic-state';
import { TabSwitcherOption } from '../../common/allNavBars/statusSwitcher/switcherTypes';
import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps';
import { ValuesDropdownOption } from '../../common/filters/genericFilterTypes';
import { JEScheduleMainTab } from '../sections/jeSchedules/jeScheduleConfig';
import { ExpenseAutomationNavbarHeaderData } from './navbarHeaderData';
interface NavBarWithHeaderProps {
    companyId: ID;
    companyName: string;
    completionStatus: CompletionStatusType;
    currentSelectedView: ExpenseAutomationViewType;
    headerData: ExpenseAutomationNavbarHeaderData;
    isZeniUser: boolean;
    refreshStatus: FetchState;
    searchText: string;
    selectedEntity: TransactionFilterEntityType;
    /** Renders below the tab strip (e.g. Missing Receipts bulk upload email + policy). */
    belowTabsSlot?: ReactNode;
    completionPercentage?: number;
    /** Raw progress (0–100) for color bands; falls back to `completionPercentage` when omitted. */
    completionProgressRaw?: number;
    createdByUserListLoaded?: boolean;
    currentJeTab?: JEScheduleMainTab;
    currentMissingReceiptsTab?: MissingReceiptsTab;
    currentRecontab?: ExpenseAutomationReconciliationViewTab;
    currentTab?: ExpenseAutomationTransactionsTab;
    filterComponent?: React.ComponentType<{
        entity: TransactionFilterEntityType;
        filters: TransactionFilters;
        /** Memoized dropdown options keyed by category field. Update this when source data populates so dropdowns refresh. */
        categoryWiseOptions?: Record<string, ValuesDropdownOption[]>;
        createdByUserListLoaded?: boolean;
        vendorSearchAutoCompleteActions?: AutoCompleteActions;
        vendorSearchAutoCompleteData?: AutoCompleteData;
        onFiltersChange: (filters: TransactionFilters) => void;
    }>;
    /** Memoized dropdown options keyed by category field. Update this when source data populates so dropdowns refresh. */
    filterOptions?: Record<string, ValuesDropdownOption[]>;
    filters?: TransactionFilters;
    hideTabSwitcher?: boolean;
    isAiCfoAccessEnabled?: boolean;
    isCompletionLoading?: boolean;
    navBarCustomElement?: JSX.Element;
    reconcileDetailPageFetchState?: FetchState;
    selectedGenericTab?: ID;
    selectedReconAccountId?: ID;
    titleStyle?: React.CSSProperties;
    vendorSearchAutoCompleteActions?: AutoCompleteActions;
    vendorSearchAutoCompleteData?: AutoCompleteData;
    getTabCountAndFetchState: (currentTab: ExpenseAutomationTransactionsTab | ExpenseAutomationReconciliationViewTab | MissingReceiptsTab | JEScheduleMainTab) => {
        count: number;
        isFetching: boolean;
        hideCountInTab?: boolean;
    } | undefined;
    onAllThreadsClick: () => void;
    onBack: () => void;
    onClose: () => void;
    onReconTabUpdate: (tab: ExpenseAutomationReconciliationViewTab) => void;
    onRefresh: () => void;
    onSearchTextChanged: (searchText: string) => void;
    onUpdateTab: (tab: ExpenseAutomationTransactionsTab) => void;
    onAskAiCfoClick?: () => void;
    onCommentDrawerClick?: () => void;
    onFiltersChange?: (filters: TransactionFilters) => void;
    onGenericTabChange?: (tab: TabSwitcherOption) => void;
    onJeTabUpdate?: (tab: JEScheduleMainTab) => void;
    onMissingReceiptsTabUpdate?: (tab: MissingReceiptsTab) => void;
}
export default function NavBarWithHeader(props: Readonly<NavBarWithHeaderProps>): import("react/jsx-runtime").JSX.Element;
export {};
