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.ZodNativeEnum; decimals: z.ZodNumber; symbol: z.ZodString; name: z.ZodString; addressOrDenom: z.ZodEffects, string, string | null>; collateralAddressOrDenom: z.ZodOptional; igpTokenAddressOrDenom: z.ZodOptional; logoURI: z.ZodOptional; connections: z.ZodOptional>; token: z.ZodString; }, "strip", z.ZodTypeAny, { token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; }, { token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; }>, z.ZodObject<{ type: z.ZodLiteral; token: z.ZodString; sourcePort: z.ZodString; sourceChannel: z.ZodString; }, "strip", z.ZodTypeAny, { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; }, { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; }>]>, z.ZodObject<{ type: z.ZodLiteral; token: z.ZodString; sourcePort: z.ZodString; sourceChannel: z.ZodString; intermediateChainName: z.ZodString; intermediateIbcDenom: z.ZodString; intermediateRouterAddress: z.ZodString; }, "strip", z.ZodTypeAny, { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; }, { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; }>]>, "many">>; coinGeckoId: z.ZodOptional; scale: z.ZodOptional, z.ZodObject<{ numerator: z.ZodEffects, bigint, string>]>, z.ZodBigInt>, bigint, string | bigint>; denominator: z.ZodEffects, bigint, string>]>, z.ZodBigInt>, bigint, string | bigint>; }, "strip", z.ZodTypeAny, { numerator: bigint; denominator: bigint; }, { numerator: string | bigint; denominator: string | bigint; }>]>>; warpRouteId: z.ZodOptional; }, "strip", z.ZodTypeAny, { symbol: string; name: string; decimals: number; chainName: string; standard: TokenStandard; addressOrDenom: string; logoURI?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: bigint; denominator: bigint; } | undefined; collateralAddressOrDenom?: string | undefined; igpTokenAddressOrDenom?: string | undefined; connections?: ({ token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; } | { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; } | { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; })[] | undefined; coinGeckoId?: string | undefined; warpRouteId?: string | undefined; }, { symbol: string; name: string; decimals: number; chainName: string; standard: TokenStandard; addressOrDenom: string | null; logoURI?: string | undefined; scale?: number | { numerator: number; denominator: number; } | { numerator: string | bigint; denominator: string | bigint; } | undefined; collateralAddressOrDenom?: string | undefined; igpTokenAddressOrDenom?: string | undefined; connections?: ({ token: string; type?: import("./TokenConnection.js").TokenConnectionType.Hyperlane | undefined; } | { type: import("./TokenConnection.js").TokenConnectionType.Ibc; token: string; sourcePort: string; sourceChannel: string; } | { type: import("./TokenConnection.js").TokenConnectionType.IbcHyperlane; token: string; sourcePort: string; sourceChannel: string; intermediateChainName: string; intermediateIbcDenom: string; intermediateRouterAddress: string; })[] | undefined; coinGeckoId?: string | undefined; warpRouteId?: string | undefined; }>; 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