export type Environment = "development" | "staging" | "uat" | "sandbox" | "production"; export type Hex = `0x${string}`; export type Jsonable = string | number | boolean | null | undefined | readonly Jsonable[] | { readonly [key: string]: Jsonable; } | { toJSON(): Jsonable; }; export type Optional = Omit & { [P in keyof T]?: T[P] | undefined; }; export type IntersectionToUnion = { [K in keyof T]: (x: T[K]) => void; }[keyof T] extends (x: infer U) => void ? U : never; export type FixedArray = Acc["length"] extends N ? Acc : FixedArray; export type TokenSymbol = { symbol: string; chainId: number; }; export type Token = TokenSymbol & { decimals: number; address: `0x${string}`; };