import { z } from 'zod';
import type { TypedTransaction } from '../providers/ProviderType.js';
import type { TokenAmount } from '../token/TokenAmount.js';
import type { ChainName } from '../types.js';
/**
 * Configuration used for instantiating a WarpCore
 * Contains the relevant tokens and their connections
 */
declare const FeeConstantConfigSchema: z.ZodArray<z.ZodObject<{
    origin: z.ZodString;
    destination: z.ZodString;
    amount: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBigInt]>;
    addressOrDenom: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    amount: string | number | bigint;
    destination: string;
    origin: string;
    addressOrDenom?: string | undefined;
}, {
    amount: string | number | bigint;
    destination: string;
    origin: string;
    addressOrDenom?: string | undefined;
}>, "many">;
export declare const WarpCoreConfigSchema: z.ZodObject<{
    tokens: z.ZodArray<z.ZodObject<{
        chainName: z.ZodString;
        standard: z.ZodNativeEnum<typeof import("../index.js").TokenStandard>;
        decimals: z.ZodNumber;
        symbol: z.ZodString;
        name: z.ZodString;
        addressOrDenom: z.ZodEffects<z.ZodNullable<z.ZodString>, string, string | null>;
        collateralAddressOrDenom: z.ZodOptional<z.ZodString>;
        igpTokenAddressOrDenom: z.ZodOptional<z.ZodString>;
        logoURI: z.ZodOptional<z.ZodString>;
        connections: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
            type: z.ZodOptional<z.ZodLiteral<import("../index.js").TokenConnectionType.Hyperlane>>;
            token: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            token: string;
            type?: import("../index.js").TokenConnectionType.Hyperlane | undefined;
        }, {
            token: string;
            type?: import("../index.js").TokenConnectionType.Hyperlane | undefined;
        }>, z.ZodObject<{
            type: z.ZodLiteral<import("../index.js").TokenConnectionType.Ibc>;
            token: z.ZodString;
            sourcePort: z.ZodString;
            sourceChannel: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: import("../index.js").TokenConnectionType.Ibc;
            token: string;
            sourcePort: string;
            sourceChannel: string;
        }, {
            type: import("../index.js").TokenConnectionType.Ibc;
            token: string;
            sourcePort: string;
            sourceChannel: string;
        }>]>, z.ZodObject<{
            type: z.ZodLiteral<import("../index.js").TokenConnectionType.IbcHyperlane>;
            token: z.ZodString;
            sourcePort: z.ZodString;
            sourceChannel: z.ZodString;
            intermediateChainName: z.ZodString;
            intermediateIbcDenom: z.ZodString;
            intermediateRouterAddress: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: import("../index.js").TokenConnectionType.IbcHyperlane;
            token: string;
            sourcePort: string;
            sourceChannel: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
            intermediateRouterAddress: string;
        }, {
            type: import("../index.js").TokenConnectionType.IbcHyperlane;
            token: string;
            sourcePort: string;
            sourceChannel: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
            intermediateRouterAddress: string;
        }>]>, "many">>;
        coinGeckoId: z.ZodOptional<z.ZodString>;
        scale: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
            numerator: z.ZodNumber;
            denominator: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            numerator: number;
            denominator: number;
        }, {
            numerator: number;
            denominator: number;
        }>, z.ZodObject<{
            numerator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>;
            denominator: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>, bigint, string | number | bigint>;
        }, "strip", z.ZodTypeAny, {
            numerator: bigint;
            denominator: bigint;
        }, {
            numerator: string | number | bigint;
            denominator: string | number | bigint;
        }>]>>;
        warpRouteId: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        symbol: string;
        name: string;
        decimals: number;
        chainName: string;
        standard: import("../index.js").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("../index.js").TokenConnectionType.Hyperlane | undefined;
        } | {
            type: import("../index.js").TokenConnectionType.Ibc;
            token: string;
            sourcePort: string;
            sourceChannel: string;
        } | {
            type: import("../index.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: import("../index.js").TokenStandard;
        addressOrDenom: string | null;
        logoURI?: string | undefined;
        scale?: number | {
            numerator: number;
            denominator: number;
        } | {
            numerator: string | number | bigint;
            denominator: string | number | bigint;
        } | undefined;
        collateralAddressOrDenom?: string | undefined;
        igpTokenAddressOrDenom?: string | undefined;
        connections?: ({
            token: string;
            type?: import("../index.js").TokenConnectionType.Hyperlane | undefined;
        } | {
            type: import("../index.js").TokenConnectionType.Ibc;
            token: string;
            sourcePort: string;
            sourceChannel: string;
        } | {
            type: import("../index.js").TokenConnectionType.IbcHyperlane;
            token: string;
            sourcePort: string;
            sourceChannel: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
            intermediateRouterAddress: string;
        })[] | undefined;
        coinGeckoId?: string | undefined;
        warpRouteId?: string | undefined;
    }>, "many">;
    options: z.ZodOptional<z.ZodObject<{
        localFeeConstants: z.ZodOptional<z.ZodArray<z.ZodObject<{
            origin: z.ZodString;
            destination: z.ZodString;
            amount: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBigInt]>;
            addressOrDenom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }, {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }>, "many">>;
        interchainFeeConstants: z.ZodOptional<z.ZodArray<z.ZodObject<{
            origin: z.ZodString;
            destination: z.ZodString;
            amount: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBigInt]>;
            addressOrDenom: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }, {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }>, "many">>;
        routeBlacklist: z.ZodOptional<z.ZodArray<z.ZodObject<{
            origin: z.ZodString;
            destination: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            destination: string;
            origin: string;
        }, {
            destination: string;
            origin: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        localFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            destination: string;
            origin: string;
        }[] | undefined;
    }, {
        localFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            destination: string;
            origin: string;
        }[] | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    tokens: {
        symbol: string;
        name: string;
        decimals: number;
        chainName: string;
        standard: import("../index.js").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("../index.js").TokenConnectionType.Hyperlane | undefined;
        } | {
            type: import("../index.js").TokenConnectionType.Ibc;
            token: string;
            sourcePort: string;
            sourceChannel: string;
        } | {
            type: import("../index.js").TokenConnectionType.IbcHyperlane;
            token: string;
            sourcePort: string;
            sourceChannel: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
            intermediateRouterAddress: string;
        })[] | undefined;
        coinGeckoId?: string | undefined;
        warpRouteId?: string | undefined;
    }[];
    options?: {
        localFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            destination: string;
            origin: string;
        }[] | undefined;
    } | undefined;
}, {
    tokens: {
        symbol: string;
        name: string;
        decimals: number;
        chainName: string;
        standard: import("../index.js").TokenStandard;
        addressOrDenom: string | null;
        logoURI?: string | undefined;
        scale?: number | {
            numerator: number;
            denominator: number;
        } | {
            numerator: string | number | bigint;
            denominator: string | number | bigint;
        } | undefined;
        collateralAddressOrDenom?: string | undefined;
        igpTokenAddressOrDenom?: string | undefined;
        connections?: ({
            token: string;
            type?: import("../index.js").TokenConnectionType.Hyperlane | undefined;
        } | {
            type: import("../index.js").TokenConnectionType.Ibc;
            token: string;
            sourcePort: string;
            sourceChannel: string;
        } | {
            type: import("../index.js").TokenConnectionType.IbcHyperlane;
            token: string;
            sourcePort: string;
            sourceChannel: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
            intermediateRouterAddress: string;
        })[] | undefined;
        coinGeckoId?: string | undefined;
        warpRouteId?: string | undefined;
    }[];
    options?: {
        localFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            amount: string | number | bigint;
            destination: string;
            origin: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            destination: string;
            origin: string;
        }[] | undefined;
    } | undefined;
}>;
export type FeeConstantConfig = z.infer<typeof FeeConstantConfigSchema>;
export type RouteBlacklist = Array<{
    origin: ChainName;
    destination: ChainName;
}>;
export declare enum WarpTxCategory {
    Approval = "approval",
    Revoke = "revoke",
    Transfer = "transfer"
}
export type WarpTypedTransaction = TypedTransaction & {
    category: WarpTxCategory;
};
export type WarpCoreConfig = z.infer<typeof WarpCoreConfigSchema>;
export interface WarpCoreFeeEstimate {
    interchainQuote: TokenAmount;
    localQuote: TokenAmount;
    tokenFeeQuote?: TokenAmount;
}
export {};
//# sourceMappingURL=types.d.ts.map