import { z } from 'zod'; import { Address, Numberish, ProtocolType } from '@hyperlane-xyz/utils'; import type { ChainName } from '../types.js'; import type { TokenAmount } from './TokenAmount.js'; import { type TokenConnection } from './TokenConnection.js'; import { TokenStandard } from './TokenStandard.js'; export declare const TokenConfigSchema: z.ZodObject<{ chainName: z.ZodString; standard: z.ZodEnum; tokenType: z.ZodOptional>; decimals: z.ZodNumber; symbol: z.ZodString; name: z.ZodString; addressOrDenom: z.ZodPipe, z.ZodTransform>; collateralAddressOrDenom: z.ZodOptional; igpTokenAddressOrDenom: z.ZodOptional; logoURI: z.ZodOptional; connections: z.ZodOptional>; token: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral; token: z.ZodString; sourcePort: z.ZodString; sourceChannel: z.ZodString; }, z.core.$strip>]>, z.ZodObject<{ type: z.ZodLiteral; token: z.ZodString; sourcePort: z.ZodString; sourceChannel: z.ZodString; intermediateChainName: z.ZodString; intermediateIbcDenom: z.ZodString; intermediateRouterAddress: z.ZodString; }, z.core.$strip>]>>>; coinGeckoId: z.ZodOptional; scale: z.ZodOptional, z.ZodObject<{ numerator: z.ZodPipe, z.ZodString]>, z.ZodTransform>; denominator: z.ZodPipe, z.ZodString]>, z.ZodTransform>; }, z.core.$strip>]>>; warpRouteId: z.ZodOptional; }, z.core.$strip>; export type TokenArgs = Omit, 'addressOrDenom' | 'connections'> & { addressOrDenom: Address | string; connections?: Array; }; export interface ITokenMetadata extends TokenArgs { protocol: ProtocolType; amount(amount: Numberish): TokenAmount; isNft(): boolean; isNative(): boolean; isHypNative(): boolean; isCollateralized(): boolean; isHypToken(): boolean; isIbcToken(): boolean; isMultiChainToken(): boolean; isCrossCollateralToken(): boolean; getConnections(): TokenConnection[]; getConnectionForChain(chain: ChainName): TokenConnection | undefined; addConnection(connection: TokenConnection): ITokenMetadata; removeConnection(token: ITokenMetadata): ITokenMetadata; equals(token?: ITokenMetadata): boolean; isFungibleWith(token?: ITokenMetadata): boolean; } //# sourceMappingURL=ITokenMetadata.d.ts.map