import { ComponentProps, ReactNode } from "react";
import { GestureResponderEvent, Pressable } from "react-native";
import { IOColors } from "../../core";
import { WithTestID } from "../../utils/types";
import { Avatar } from "../avatar";
import { Badge } from "../badge";
import { IOIcons } from "../icons";
type ListItemTopElementProps = {
    badgeProps: ComponentProps<typeof Badge>;
    dateValue?: never;
} | {
    badgeProps?: never;
    dateValue: string;
};
type ListItemNavPartialProps = WithTestID<{
    value: string | ReactNode;
    /**
     * The maximum number of lines to display for the value.
     */
    numberOfLines?: number;
    description?: string | ReactNode;
    loading?: boolean;
    onPress: (event: GestureResponderEvent) => void;
    hideChevron?: boolean;
    topElement?: ListItemTopElementProps;
} & Pick<ComponentProps<typeof Pressable>, "accessibilityLabel" | "accessibilityHint">>;
export type ListItemNavGraphicProps = {
    avatarProps: Omit<ComponentProps<typeof Avatar>, "size">;
    icon?: never;
    iconColor?: never;
    paymentLogoUri?: never;
} | {
    avatarProps?: never;
    icon?: never;
    iconColor?: never;
    paymentLogoUri: string;
} | {
    avatarProps?: never;
    icon: IOIcons;
    iconColor?: IOColors;
    paymentLogoUri?: never;
} | {
    avatarProps?: never;
    icon?: never;
    iconColor?: never;
    paymentLogoUri?: never;
};
export type ListItemNav = ListItemNavPartialProps & ListItemNavGraphicProps;
export declare const ListItemNav: ({ value, description, onPress, icon, iconColor, avatarProps: avatar, paymentLogoUri, accessibilityLabel, accessibilityHint, testID, hideChevron, topElement, loading, numberOfLines }: ListItemNav) => import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=ListItemNav.d.ts.map