import { ID } from '@zeniai/client-epic-state';
export interface ManualSearchTransactionResult {
    amount: number;
    /** ISO 4217 code (e.g. USD) or display symbol (e.g. $) — both supported for list formatting. */
    currencyCode: string;
    /** ISO date, YYYY-MM-DD, or display string; normalized to locale visual date in the list. */
    transactionDate: string;
    transactionId: ID;
    transactionType: string;
    vendorName: string;
    vendorLogo?: string;
}
interface ManualSearchInputProps {
    hasCandidates: boolean;
    selectedTransactionId: ID | null;
    /** Disable search and results while confirm-match is in progress. */
    interactionLocked?: boolean;
    isLoadingMore?: boolean;
    isSearching?: boolean;
    manualSearchNextPageToken?: string | null;
    /** Reserved for future “showing X of Y” copy. */
    manualSearchTotalCount?: number;
    searchResults?: ManualSearchTransactionResult[];
    onClearSelection: () => void;
    /**
     * Fires with a trimmed query when length ≥ `MIN_MANUAL_TRANSACTION_SEARCH_LENGTH`.
     * Pass `""` when the user clears or shortens below that length so Redux clears results without an API call.
     */
    onSearch: (query: string) => void;
    onSelectionChange: (transactionId: ID, transactionType: string) => void;
    onLoadMore?: () => void;
}
export declare const ManualSearchInput: ({ hasCandidates, interactionLocked, isLoadingMore, isSearching, manualSearchNextPageToken, searchResults, selectedTransactionId, onClearSelection, onSearch, onSelectionChange, onLoadMore, }: ManualSearchInputProps) => import("react/jsx-runtime").JSX.Element;
export {};
