import { default as React } from 'react';
import { CardProductInformation, CashbackInformation, CreditAccountInformation, DebitAccountInformation } from '@zeniai/client-analytics';
import { CardStatusCodeType, ChargeCardListUIState, ChargeCardRowActionView, ChargeCardViewSortKey, ChargeCardWithUser, CreditAccount, CreditAccountRepayment, DepositAccountListWithDebitCardIssued, FetchState, ID, LoggedInUser, SortOrder } from '@zeniai/client-epic-state';
import { ActionTypeForRowAction } from '../../listViewItems/ChargeCardRow';
import { BulkActionType } from '../helpers/BulkSelectionUtils';
import { BaseCardMixPanelProps } from '../helpers/ChargeCardUtils';
export interface ChargeCardListTableProps extends BaseCardMixPanelProps {
    bulkSubmissionLimit: number;
    cardList: ChargeCardWithUser[];
    cardsSelectedForBulkAction: ID[];
    controllerEmails: string[];
    creditAccount: CreditAccount;
    creditAccountRepayment: CreditAccountRepayment;
    depositAccountListWithDebitCardIssued: DepositAccountListWithDebitCardIssued;
    fetchState: FetchState;
    isBulkActionAllowed: boolean;
    isCardControlsEnabled: boolean;
    isCardsCommentingEnabled: boolean;
    isChargeCardFeatureEnabled: boolean;
    isChargeCardSetupEnabled: boolean;
    isDebitCardFeatureEnabled: boolean;
    isDebitCardSetupEnabled: boolean;
    productInformation: CardProductInformation;
    revokeChargeCardsInviteFetchState: FetchState;
    rowActionView: ChargeCardRowActionView;
    setActionTypeForRowAction: React.Dispatch<React.SetStateAction<ActionTypeForRowAction | undefined>>;
    showViewForCardUser: boolean;
    signedInUser: LoggedInUser;
    uiState: ChargeCardListUIState;
    unlockChargeCardsFetchState: FetchState;
    cashbackInformation?: CashbackInformation;
    creditAccountInformation?: CreditAccountInformation;
    debitAccountInformation?: DebitAccountInformation;
    firstSelectedCardStatus?: CardStatusCodeType;
    /**
     * Number of AI-CFO-triggered card creations currently in flight. When the
     * list is otherwise empty (`cardList.length === 0`) and this is `> 0`,
     * the table body renders that many `ChargeCardListSkeletonRow`s below
     * the receipt-bot email banner instead of the standard empty state, so
     * the user sees in-flight cards being created. Cleared back to `0` once
     * the bulk POST resolves and the real cards land in `cardList`.
     */
    pendingCreationCount?: number;
    receiptBotEmail?: string;
    resendInviteId?: ID;
    searchText?: string;
    onBulkCloseClick: () => void;
    onBulkLockClick: () => void;
    onChargeCardResendInviteClick: (id: ID) => void;
    onChargeCardRowClick: (id: ID, index: number) => void;
    onColumnSortConfigChanged: (sortKey: ChargeCardViewSortKey, sortOrder: SortOrder) => void;
    onProceedForBulkActionClick: (actionType: BulkActionType) => void;
    onReloadCards: () => void;
    removeAllCardsFromBulkActionList: () => void;
    setCardIdForRowAction: (cardId: ID | undefined) => void;
    setShowBulkChangeSpendLimitPopup: (show: boolean) => void;
    updateBulkActionList: (ids: ID[]) => void;
}
export interface ChargeCardListFilteredPageProps extends BaseCardMixPanelProps {
    bulkSubmissionLimit: number;
    cardList: ChargeCardWithUser[];
    cardsSelectedForBulkAction: ID[];
    controllerEmails: string[];
    creditAccount: CreditAccount;
    creditAccountRepayment: CreditAccountRepayment;
    depositAccountListWithDebitCardIssued: DepositAccountListWithDebitCardIssued;
    fetchState: FetchState;
    isBulkActionAllowed: boolean;
    isCardControlsEnabled: boolean;
    isCardsCommentingEnabled: boolean;
    isChargeCardFeatureEnabled: boolean;
    isChargeCardSetupEnabled: boolean;
    isDebitCardFeatureEnabled: boolean;
    isDebitCardSetupEnabled: boolean;
    productInformation: CardProductInformation;
    revokeChargeCardsInviteFetchState: FetchState;
    rowActionView: ChargeCardRowActionView;
    setActionTypeForRowAction: React.Dispatch<React.SetStateAction<ActionTypeForRowAction | undefined>>;
    showViewForCardUser: boolean;
    signedInUser: LoggedInUser;
    uiState: ChargeCardListUIState;
    unlockChargeCardsFetchState: FetchState;
    cashbackInformation?: CashbackInformation;
    creditAccountInformation?: CreditAccountInformation;
    debitAccountInformation?: DebitAccountInformation;
    firstSelectedCardStatus?: CardStatusCodeType;
    pendingCreationCount?: number;
    receiptBotEmail?: string;
    resendInviteId?: ID;
    searchText?: string;
    onBulkCloseClick: () => void;
    onBulkLockClick: () => void;
    onChargeCardResendInviteClick: (id: ID) => void;
    onChargeCardRowClick: (id: ID, index: number) => void;
    onColumnSortConfigChanged: (sortKey: ChargeCardViewSortKey, sortOrder: SortOrder) => void;
    onProceedForBulkActionClick: (actionType: BulkActionType) => void;
    onReloadCards: () => void;
    removeAllCardsFromBulkActionList: () => void;
    setCardIdForRowAction: (cardId: ID | undefined) => void;
    setShowBulkChangeSpendLimitPopup: (show: boolean) => void;
    updateBulkActionList: (ids: ID[]) => void;
}
declare const _default: React.MemoExoticComponent<({ cardList, controllerEmails, creditAccount, creditAccountRepayment, fetchState, uiState, setCardIdForRowAction, setActionTypeForRowAction, pendingCreationCount, receiptBotEmail, searchText, resendInviteId, showViewForCardUser, signedInUser, isChargeCardFeatureEnabled, isChargeCardSetupEnabled, isCardsCommentingEnabled, isDebitCardFeatureEnabled, isDebitCardSetupEnabled, cashbackInformation, creditAccountInformation, debitAccountInformation, productInformation, isBulkActionAllowed, isCardControlsEnabled, cardsSelectedForBulkAction, firstSelectedCardStatus, bulkSubmissionLimit, updateBulkActionList, removeAllCardsFromBulkActionList, onProceedForBulkActionClick, onBulkCloseClick, onBulkLockClick, setShowBulkChangeSpendLimitPopup, onChargeCardRowClick, onReloadCards, onColumnSortConfigChanged, onChargeCardResendInviteClick, depositAccountListWithDebitCardIssued, rowActionView, revokeChargeCardsInviteFetchState, unlockChargeCardsFetchState, }: ChargeCardListTableProps) => import("react/jsx-runtime").JSX.Element>;
export default _default;
