export interface User { id: string; account: string; username: string; avatar_store_url: string | null; is_admin: boolean; access_token: string nickname?: string email: string user_id?: string refresh_token?: string avatar_file_url?: string } interface UserCountData { video_count: number, photo_count: number, live_count: number, video_length: number, cover_url: string | null } export interface CountData { used_bytes: number; total_bytes: number; counter: { user_id: number; total_count: UserCountData, category_count: { [key: string]: UserCountData } } } interface Counter { user_id: number, total_count: UserCountData, category_count: { [key: string]: UserCountData } } export interface TitleRankings { display_name: string, ranking: number, value: number, material_type: string, user_id: string, region: string } export interface UserInfoDetails { material_counter: Counter, user_info: User, stories_count: number, conversations_count: number, remain_points: number, total_points: number, title_rankings: TitleRankings[], medal_infos: { "id": number, "url": string }[], membership_level: string } export type SourceItem = { id: number; name: string; display_name: string; statistical_granularity: 'Count' | 'Duration'; }; export type GroupedData = { [key: string]: SourceItem[]; }; export type TargetItem = { name: string; children: { name: string, value: number }[]; }; export type RankingItem = { display_name: string material_type: string ranking: number region: string user_avatar_url: string user_id: string value: number user_nick_name: string } export interface Address { city: string; country: string; district: string; formattedAddress: string; isoCountryCode: string; name: string; postalCode: string | null; region: string; street: string; streetNumber: string; subregion: string | null; timezone: string | null; }