import type { Address } from "viem"; export type TokenIconLayerSource = { type: "symbol"; symbol: string; } | { type: "url"; url: string; }; /** * Named layout presets for composite icons. Pixel layout lives in UI-kit (TokenIcon), not in API payloads. */ export type TokenIconCompositePreset = /** Background full size; foreground centered at ~65% (e.g. token on plate). */ "centered_foreground"; /** * Client-composed token icon: multiple layers by preset. */ export type IconComposite = { kind: "composite"; preset: TokenIconCompositePreset; scaleFactor?: number; /** Exactly two layers (bottom then top). */ layers: readonly [TokenIconLayerSource, TokenIconLayerSource]; }; export interface TokenDataPayload { addr: Address; symbol: string; title?: string; name: string; decimals: number; isPhantom: boolean; icon?: string | IconComposite; } export declare class TokenData { readonly address: Address; readonly title: string; readonly symbol: string; readonly name: string; readonly decimals: number; readonly icon: string | IconComposite; readonly isPhantom: boolean; constructor(payload: TokenDataPayload); static getTokenIcon(symbol: string): string; }