import { default as React } from 'react';
import { SxProps, Theme, TooltipProps } from '@mui/material';
import { DIDProps } from '../DID';
import { AvatarProps } from '../Avatar';
import { ShortenLabelProps } from './Content/shorten-label';
type UserPublicInfo = {
    avatar: string;
    did: string;
    fullName: string;
};
export type UserMetadataLink = {
    url: string;
    favicon?: string;
};
export declare enum DurationEnum {
    NoClear = "no_clear",
    ThirtyMinutes = "30_minutes",
    OneHour = "1_hour",
    FourHours = "4_hours",
    Today = "today",
    ThisWeek = "this_week",
    Custom = "custom"
}
export declare enum StatusEnum {
    Meeting = "meeting",
    Community = "community",
    Holiday = "holiday",
    OffSick = "off_sick",
    WorkingRemotely = "working_remotely"
}
export type UserPhoneProps = {
    country: string;
    phoneNumber?: string;
};
export type UserMetadata = {
    bio?: string;
    location?: string;
    timezone?: string;
    joinedAt?: string;
    status?: {
        value: string;
        duration?: DurationEnum;
        dateRange?: Date[];
    };
    links?: UserMetadataLink[];
    cover?: string;
    email?: string;
    phone?: UserPhoneProps;
};
export type UserAddress = {
    country?: string;
    province?: string;
    city?: string;
    line1?: string;
    line2?: string;
    postalCode?: string;
};
export type User = UserPublicInfo & {
    email?: string;
    phone?: string;
    sourceProvider?: string;
    sourceAppPid?: string;
    lastLoginAt?: string;
    lastLoginIp?: string;
    createdAt?: string;
    passports?: any[];
    didSpace?: Record<string, any>;
    connectedAccounts?: any[];
    locale?: string;
    url?: string;
    inviter?: string;
    emailVerified?: boolean;
    phoneVerified?: boolean;
    metadata?: UserMetadata;
    address?: UserAddress;
};
export declare const AvatarSize: {
    small: number;
    medium: number;
    large: number;
    xlarge: number;
};
export declare enum CardType {
    AvatarOnly = "AvatarOnly",// 仅头像
    Detailed = "Detailed"
}
export declare enum InfoType {
    NameOnly = "NameOnly",// 仅显示名称
    Minimal = "Minimal",// 极简模式，显示头像、名称和DID
    Basic = "Basic"
}
export interface UserCardProps {
    user?: User;
    did?: string;
    cardType?: CardType;
    infoType?: InfoType;
    popupInfoType?: InfoType;
    avatarSize?: number;
    showHoverCard?: boolean;
    showDid?: boolean;
    didProps?: Partial<DIDProps>;
    popupDidProps?: Partial<DIDProps>;
    popupShowDid?: boolean;
    avatarProps?: Partial<AvatarProps>;
    popupAvatarProps?: Partial<AvatarProps>;
    tooltipProps?: Partial<TooltipProps>;
    sx?: SxProps<Theme>;
    popupSx?: SxProps<Theme>;
    shortenLabelProps?: Partial<ShortenLabelProps>;
    popupShortenLabelProps?: Partial<ShortenLabelProps>;
    renderName?: (user: User) => React.ReactNode;
    popupRenderName?: (user: User) => React.ReactNode;
    renderFields?: string[];
    popupRenderFields?: string[];
    renderTopRightContent?: () => React.ReactNode;
    topRightMaxWidth?: number;
    renderCustomContent?: () => React.ReactNode;
    onAvatarClick?: (user: User, e?: React.MouseEvent<HTMLDivElement>) => void;
}
export {};
