declare namespace AdminAPI {
  interface Asset {
    id: number;
    asset_code: string;
    name: string;
    subtitle: string;
    description: string;
    token_symbol: string;
    token_role?: string;
    decimals: number;
    chain_id: number;
    contract_address: string;
    deploy_block: number;
    category: string;
    category_color: string;
    icon_url: string;
    underlying_assets: string;
    target_apy: number;
    pool_cap_usd: number;
    risk_level: number;
    risk_label: string;
    lock_up_days: number;
    is_active: boolean;
    is_featured: boolean;
    created_at: string;
    updated_at: string;
  }

  interface AssetCustody {
    id: number;
    asset_id: number;
    custodian_name: string;
    custodian_address: string;
    custodian_license: string;
    custody_type: string;
    custody_location: string;
    auditor_name: string;
    last_audit_date: string | null;
    audit_report_url: string;
    additional_info: string;
    created_at: string;
    updated_at: string;
  }

  interface AssetAuditReport {
    id: number;
    asset_id: number;
    report_type: string;
    report_title: string;
    report_date: string;
    report_url: string;
    auditor_name: string;
    summary: string;
    is_active: boolean;
    display_order: number;
    created_at: string;
    updated_at: string;
  }

  interface PointsRule {
    id: number;
    rule_name: string;
    rule_type: string;
    base_points: number;
    multiplier: number;
    conditions: string;
    description: string;
    valid_from: string | null;
    valid_until: string | null;
    is_active: boolean;
    priority: number;
    created_at: string;
    updated_at: string;
  }

  interface Season {
    id: number;
    season_number: number;
    season_name: string;
    start_time: string;
    end_time: string;
    status: string;
    total_rewards: number;
    multiplier: number;
    description: string;
    is_active: boolean;
    created_at: string;
    updated_at: string;
  }

  interface VIPTier {
    id: number;
    tier_name: string;
    tier_level: number;
    min_points: number;
    max_points: number | null;
    multiplier: number;
    perks: string;
    icon: string;
    color: string;
    display_order: number;
    is_active: boolean;
    created_at: string;
    updated_at: string;
  }

  interface User {
    wallet_address: string;
    nickname: string;
    avatar: string;
    bio: string;
    referrer_wallet: string | null;
    invite_code: string;
    direct_invites_count: number;
    member_tier: string;
    vip_level: number;
    total_points: number;
    global_rank: number | null;
    created_at: string;
    updated_at: string;
  }

  interface InviteCode {
    id: number;
    wallet_address: string;
    code: string;
    max_uses: number;
    used_count: number;
    expires_at: string | null;
    is_active: boolean;
    created_at: string;
  }

  interface ProductLink {
    id: number;
    asset_id: number;
    link_text: string;
    link_url: string;
    description: string;
    display_area: string;
    display_order: number;
    is_active: boolean;
    created_at: string;
    updated_at: string;
  }

  interface SystemContract {
    id: number;
    name: string;
    chain_id: number;
    address: string;
    deploy_block: number | null;
    description: string;
    is_active: boolean;
    created_at: string;
    updated_at: string;
  }
}
