import { AuthParams, FetchState, ID, ResolvedBatchFile } from '@zeniai/client-epic-state'; import { ManualSearchTransactionResult } from './ManualSearchInput'; interface UnmatchedTabProps { authParams: AuthParams; pendingMatchAttachmentId: ID | null; pendingMatchTransactionId: ID | null; unmatchedFiles: ResolvedBatchFile[]; /** * Drives exit animation after a successful confirm-match. Defaults to `Not-Started` when omitted (e.g. Storybook). */ confirmMatchFetchState?: FetchState; hasMoreBatchDetails?: boolean; /** True while confirm-match API is in flight — lock selection and search. */ isConfirmMatchInProgress?: boolean; isLoading?: boolean; isLoadingMore?: boolean; isLoadingMoreManualSearch?: boolean; isSearching?: boolean; /** * When set (e.g. from app selector), search UI is limited to this attachment. * If omitted, the tab tracks the last receipt that fired a search (query length ≥ 2) * so global `searchResults` are not shown on every card at once. */ manualSearchNextPageToken?: string | null; manualSearchResultsAttachmentId?: ID | null; manualSearchTotalCount?: number; /** Bumps when manual search state is cleared — remount per-receipt search UI. */ manualSearchUiResetKey?: number; pastUnmatchedFiles?: ResolvedBatchFile[]; /** * Scroll container for infinite load (IntersectionObserver root). * - Omitted: use viewport (e.g. Storybook). * - `null`: parent ref not attached yet — wait before observing (avoids viewport + root double-fetch). * - `HTMLElement`: use as `root`. */ scrollRoot?: HTMLElement | null; searchResults?: ManualSearchTransactionResult[]; onPendingMatchChange: (info: { attachmentId: ID; batchId: ID; fileName: string; transactionId: ID; transactionType: string; } | null) => void; onDelete?: (attachmentId: ID) => void; onLoadMoreBatchDetails?: () => void; onLoadMoreManualSearch?: () => void; /** Empty `query`: clear manual search; trimmed length ≥ 2: run search. */ onSearchTransactions?: (query: string, pageToken?: string | null) => void; } export declare const UnmatchedTab: ({ authParams, unmatchedFiles, pastUnmatchedFiles, hasMoreBatchDetails, isLoading, isLoadingMore, isLoadingMoreManualSearch, isSearching, manualSearchNextPageToken, manualSearchTotalCount, manualSearchUiResetKey, confirmMatchFetchState, isConfirmMatchInProgress, pendingMatchAttachmentId, pendingMatchTransactionId, onDelete, onLoadMoreBatchDetails, onLoadMoreManualSearch, onPendingMatchChange, onSearchTransactions, manualSearchResultsAttachmentId, scrollRoot, searchResults, }: UnmatchedTabProps) => import("react/jsx-runtime").JSX.Element; export {};