import * as React from 'react'; type FriendStatus = 'online' | 'away' | 'busy' | 'offline' | 'none'; type FriendRowSize = 'regular' | 'large'; interface FriendAvatarProps { avatarUrl?: string; status: FriendStatus; showPlaceholder?: boolean; /** Visual density. Use `large` for wider tablet layouts. */ size?: FriendRowSize; } declare function FriendAvatar({ avatarUrl, status, showPlaceholder, size, }: FriendAvatarProps): import("react/jsx-runtime").JSX.Element | null; interface FriendInfoProps { name: string; gameLabel?: string; status: FriendStatus; ownerBadge?: React.ReactNode; /** Visual density. Use `large` for wider tablet layouts. */ size?: FriendRowSize; } declare function FriendInfo({ name, gameLabel, status, ownerBadge, size }: FriendInfoProps): import("react/jsx-runtime").JSX.Element; interface FriendRowProps { /** Friend display name. */ name: string; /** Secondary line under the name — typically the presence / game label. */ gameLabel?: string; /** Drives the status dot color and the `gameLabel` tint. */ status: FriendStatus; /** Avatar (player card) URL — fills the left 44×44 tile. */ avatarUrl?: string; /** Show the muted avatar tile when `avatarUrl` is missing. */ showAvatarPlaceholder?: boolean; /** Badge shown to the right of the name (e.g. phosphor `` for party owner). */ ownerBadge?: React.ReactNode; /** Slot rendered between the text block and the optional chevron. */ rightContent?: React.ReactNode; /** Chevron rendered on the far right. Consumer supplies (e.g. phosphor ``). */ chevron?: React.ReactNode; /** Visual density. Use `large` for wider tablet layouts. */ size?: FriendRowSize; /** Row opacity (0–1). Consumers use this to dim non-Valorant / offline variants. */ opacity?: number; /** Show the skeleton placeholder instead of the real row. */ isLoading?: boolean; /** Extra classes merged onto the outer row wrapper. */ className?: string; } /** * Single friend entry in the friends list — avatar with status dot, name * (optionally flagged with a party-owner badge), presence label underneath, * optional right-aligned slot, optional chevron. * * Data-free: the consumer resolves the avatar URL, formats the presence * label, maps XMPP presence → `FriendStatus`, and supplies the owner / * chevron icons as `ReactNode`. The row renders no card chrome — stack * instances inside a `bg-card rounded-2xl overflow-hidden` container with * `` between them to match the app's friends list. */ declare function FriendRow({ name, gameLabel, status, avatarUrl, showAvatarPlaceholder, ownerBadge, rightContent, chevron, size, opacity, isLoading, className, }: FriendRowProps): import("react/jsx-runtime").JSX.Element; export { FriendAvatar, FriendInfo, FriendRow }; export type { FriendAvatarProps, FriendInfoProps, FriendRowProps, FriendRowSize, FriendStatus }; //# sourceMappingURL=friend-row.d.ts.map