import type { DeriveType } from "binary-layout";
import type { Network } from "@stable-io/cctp-sdk-definitions";
export declare const quoteRelayLayout: <N extends Network>(network: N) => {
    readonly binary: "switch";
    readonly idSize: 1;
    readonly idTag: "quoteRelay";
    readonly layouts: readonly [readonly [readonly [129, "inUsdc"], readonly [{
        readonly size: 1;
        readonly custom: {
            to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
            }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
            from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
            }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
        };
        readonly binary: "uint";
        readonly name: "destinationDomain";
    }, {
        readonly binary: "uint";
        readonly size: 1;
        readonly endianness: "big";
        readonly custom: {
            readonly to: (encoded: number) => "v1" | "v2Direct" | "avaxHop";
            readonly from: (name: "v1" | "v2Direct" | "avaxHop") => number;
        };
        readonly name: "corridor";
    }, {
        readonly binary: "uint";
        readonly size: 4;
        readonly custom: {
            to: (val: number) => import("@stable-io/amount").Amount<{
                readonly name: "GasToken";
                readonly units: readonly [{
                    readonly symbol: "GasToken";
                    readonly scale: 1n;
                }, {
                    readonly symbol: "mGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "\u00B5GasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "nGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "aGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }];
                readonly human: "GasToken";
            }>;
            from: (amount: import("@stable-io/amount").Amount<{
                readonly name: "GasToken";
                readonly units: readonly [{
                    readonly symbol: "GasToken";
                    readonly scale: 1n;
                }, {
                    readonly symbol: "mGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "\u00B5GasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "nGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "aGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }];
                readonly human: "GasToken";
            }>) => number;
        };
        readonly name: "gasDropoff";
    }]], readonly [readonly [130, "inGasToken"], readonly [{
        readonly size: 1;
        readonly custom: {
            to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
            }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
            from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
            }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
        };
        readonly binary: "uint";
        readonly name: "destinationDomain";
    }, {
        readonly binary: "uint";
        readonly size: 1;
        readonly endianness: "big";
        readonly custom: {
            readonly to: (encoded: number) => "v1" | "v2Direct" | "avaxHop";
            readonly from: (name: "v1" | "v2Direct" | "avaxHop") => number;
        };
        readonly name: "corridor";
    }, {
        readonly binary: "uint";
        readonly size: 4;
        readonly custom: {
            to: (val: number) => import("@stable-io/amount").Amount<{
                readonly name: "GasToken";
                readonly units: readonly [{
                    readonly symbol: "GasToken";
                    readonly scale: 1n;
                }, {
                    readonly symbol: "mGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "\u00B5GasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "nGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "aGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }];
                readonly human: "GasToken";
            }>;
            from: (amount: import("@stable-io/amount").Amount<{
                readonly name: "GasToken";
                readonly units: readonly [{
                    readonly symbol: "GasToken";
                    readonly scale: 1n;
                }, {
                    readonly symbol: "mGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "\u00B5GasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "nGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }, {
                    readonly symbol: "aGasToken";
                    readonly scale: bigint | import("@stable-io/amount").Rational;
                }];
                readonly human: "GasToken";
            }>) => number;
        };
        readonly name: "gasDropoff";
    }]]];
};
export type QuoteRelay<N extends Network> = DeriveType<ReturnType<typeof quoteRelayLayout<N>>>;
export declare const quoteRelayArrayLayout: <N extends Network>(network: N) => {
    readonly binary: "array";
    readonly layout: {
        readonly binary: "switch";
        readonly idSize: 1;
        readonly idTag: "quoteRelay";
        readonly layouts: readonly [readonly [readonly [129, "inUsdc"], readonly [{
            readonly size: 1;
            readonly custom: {
                to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                    Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                    Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
                from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                    Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                    Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
            };
            readonly binary: "uint";
            readonly name: "destinationDomain";
        }, {
            readonly binary: "uint";
            readonly size: 1;
            readonly endianness: "big";
            readonly custom: {
                readonly to: (encoded: number) => "v1" | "v2Direct" | "avaxHop";
                readonly from: (name: "v1" | "v2Direct" | "avaxHop") => number;
            };
            readonly name: "corridor";
        }, {
            readonly binary: "uint";
            readonly size: 4;
            readonly custom: {
                to: (val: number) => import("@stable-io/amount").Amount<{
                    readonly name: "GasToken";
                    readonly units: readonly [{
                        readonly symbol: "GasToken";
                        readonly scale: 1n;
                    }, {
                        readonly symbol: "mGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "\u00B5GasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "nGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "aGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }];
                    readonly human: "GasToken";
                }>;
                from: (amount: import("@stable-io/amount").Amount<{
                    readonly name: "GasToken";
                    readonly units: readonly [{
                        readonly symbol: "GasToken";
                        readonly scale: 1n;
                    }, {
                        readonly symbol: "mGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "\u00B5GasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "nGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "aGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }];
                    readonly human: "GasToken";
                }>) => number;
            };
            readonly name: "gasDropoff";
        }]], readonly [readonly [130, "inGasToken"], readonly [{
            readonly size: 1;
            readonly custom: {
                to: (val: number) => import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                    Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                    Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>;
                from: (val: import("@stable-io/utils").ApplyAliases<import("@stable-io/cctp-sdk-definitions").DomainAliases, {
                    Mainnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Solana", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                    Testnet: ["Ethereum", "Avalanche", "Optimism", "Arbitrum", "Base", "Polygon", "Unichain", "Linea", "Codex", "Sonic", "Worldchain"];
                }[N extends bigint ? `bigint(${N})` : N extends boolean ? `boolean(${N})` : N][number]>) => number;
            };
            readonly binary: "uint";
            readonly name: "destinationDomain";
        }, {
            readonly binary: "uint";
            readonly size: 1;
            readonly endianness: "big";
            readonly custom: {
                readonly to: (encoded: number) => "v1" | "v2Direct" | "avaxHop";
                readonly from: (name: "v1" | "v2Direct" | "avaxHop") => number;
            };
            readonly name: "corridor";
        }, {
            readonly binary: "uint";
            readonly size: 4;
            readonly custom: {
                to: (val: number) => import("@stable-io/amount").Amount<{
                    readonly name: "GasToken";
                    readonly units: readonly [{
                        readonly symbol: "GasToken";
                        readonly scale: 1n;
                    }, {
                        readonly symbol: "mGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "\u00B5GasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "nGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "aGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }];
                    readonly human: "GasToken";
                }>;
                from: (amount: import("@stable-io/amount").Amount<{
                    readonly name: "GasToken";
                    readonly units: readonly [{
                        readonly symbol: "GasToken";
                        readonly scale: 1n;
                    }, {
                        readonly symbol: "mGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "\u00B5GasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "nGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }, {
                        readonly symbol: "aGasToken";
                        readonly scale: bigint | import("@stable-io/amount").Rational;
                    }];
                    readonly human: "GasToken";
                }>) => number;
            };
            readonly name: "gasDropoff";
        }]]];
    };
};
export declare const quoteRelayResultLayout: {
    readonly binary: "array";
    readonly layout: {
        readonly binary: "uint";
        readonly size: 32;
    };
};
//# sourceMappingURL=quoteRelay.d.ts.map