import { ReactNode } from "react";
import { ImageURISource } from "react-native";
import { WithTestID } from "../../utils/types";
import { Badge } from "../badge/Badge";
import { IOLogoPaymentType } from "../logos";
import { PressableBaseProps } from "./PressableListItemBase";
export type ListItemTransactionBadge = {
    text: string;
    variant: Badge["variant"];
};
export type ListItemTransactionLogo = IOLogoPaymentType | ImageURISource | ReactNode;
export type ListItemTransaction = WithTestID<PressableBaseProps & {
    showChevron?: boolean;
    isLoading?: boolean;
    loadingAccessibilityLabel?: string;
    /**
     * A logo that will be displayed on the left of the list item.
     *
     * Must be a {@link IOLogoPaymentType} or an {@link ImageURISource} or an {@link Icon}.
     */
    paymentLogoIcon?: ListItemTransactionLogo;
    subtitle: string;
    title: string;
    /**
     * The maximum number of lines to display for the title.
     * @default 2
     */
    numberOfLines?: number;
    accessible?: boolean;
} & ({
    transaction: {
        amount: string;
        amountAccessibilityLabel: string;
        badge?: never;
        refund?: boolean;
    };
} | {
    transaction: {
        amount?: string;
        amountAccessibilityLabel?: string;
        badge: ListItemTransactionBadge;
        refund?: never;
    };
})>;
export declare const ListItemTransaction: ({ accessibilityLabel, loadingAccessibilityLabel, showChevron, isLoading, paymentLogoIcon, onPress, subtitle, testID, title, transaction: { amount, amountAccessibilityLabel, badge, refund }, numberOfLines, accessible }: ListItemTransaction) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ListItemTransaction.d.ts.map