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, {
    origin: string;
    amount: string | number | bigint;
    destination: string;
    addressOrDenom?: string | undefined;
}, {
    origin: string;
    amount: string | number | bigint;
    destination: 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.ZodUnion<[z.ZodString, z.ZodNull]>;
        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;
            intermediateRouterAddress: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
        }, {
            type: import("../index.js").TokenConnectionType.IbcHyperlane;
            token: string;
            sourcePort: string;
            sourceChannel: string;
            intermediateRouterAddress: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
        }>]>, "many">>;
        coinGeckoId: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        symbol: string;
        name: string;
        decimals: number;
        standard: import("../index.js").TokenStandard;
        chainName: string;
        addressOrDenom: string | null;
        collateralAddressOrDenom?: string | undefined;
        igpTokenAddressOrDenom?: string | undefined;
        logoURI?: 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;
            intermediateRouterAddress: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
        })[] | undefined;
        coinGeckoId?: string | undefined;
    }, {
        symbol: string;
        name: string;
        decimals: number;
        standard: import("../index.js").TokenStandard;
        chainName: string;
        addressOrDenom: string | null;
        collateralAddressOrDenom?: string | undefined;
        igpTokenAddressOrDenom?: string | undefined;
        logoURI?: 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;
            intermediateRouterAddress: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
        })[] | undefined;
        coinGeckoId?: 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, {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }, {
            origin: string;
            amount: string | number | bigint;
            destination: 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, {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }, {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }>, "many">>;
        routeBlacklist: z.ZodOptional<z.ZodArray<z.ZodObject<{
            origin: z.ZodString;
            destination: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            origin: string;
            destination: string;
        }, {
            origin: string;
            destination: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        localFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            origin: string;
            destination: string;
        }[] | undefined;
    }, {
        localFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            origin: string;
            destination: string;
        }[] | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    tokens: {
        symbol: string;
        name: string;
        decimals: number;
        standard: import("../index.js").TokenStandard;
        chainName: string;
        addressOrDenom: string | null;
        collateralAddressOrDenom?: string | undefined;
        igpTokenAddressOrDenom?: string | undefined;
        logoURI?: 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;
            intermediateRouterAddress: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
        })[] | undefined;
        coinGeckoId?: string | undefined;
    }[];
    options?: {
        localFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            origin: string;
            destination: string;
        }[] | undefined;
    } | undefined;
}, {
    tokens: {
        symbol: string;
        name: string;
        decimals: number;
        standard: import("../index.js").TokenStandard;
        chainName: string;
        addressOrDenom: string | null;
        collateralAddressOrDenom?: string | undefined;
        igpTokenAddressOrDenom?: string | undefined;
        logoURI?: 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;
            intermediateRouterAddress: string;
            intermediateChainName: string;
            intermediateIbcDenom: string;
        })[] | undefined;
        coinGeckoId?: string | undefined;
    }[];
    options?: {
        localFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        interchainFeeConstants?: {
            origin: string;
            amount: string | number | bigint;
            destination: string;
            addressOrDenom?: string | undefined;
        }[] | undefined;
        routeBlacklist?: {
            origin: string;
            destination: string;
        }[] | undefined;
    } | undefined;
}>;
export type FeeConstantConfig = z.infer<typeof FeeConstantConfigSchema>;
export type RouteBlacklist = Array<{
    origin: ChainName;
    destination: ChainName;
}>;
export declare enum WarpTxCategory {
    Approval = "approval",
    Transfer = "transfer"
}
export type WarpTypedTransaction = TypedTransaction & {
    category: WarpTxCategory;
};
export type WarpCoreConfig = z.infer<typeof WarpCoreConfigSchema>;
export interface WarpCoreFeeEstimate {
    interchainQuote: TokenAmount;
    localQuote: TokenAmount;
}
export {};
//# sourceMappingURL=types.d.ts.map