import { type Network } from "@stable-io/cctp-sdk-definitions";
import type { DeriveType } from "binary-layout";
export declare const routerHookDataLayout: <N extends Network>(network: N) => 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: "bytes";
    readonly size: import("@stable-io/utils").Size;
    readonly custom: {
        to: (encoded: Uint8Array) => import("@stable-io/cctp-sdk-definitions").UniversalAddress;
        from: (addr: import("@stable-io/cctp-sdk-definitions").UniversalAddress) => Uint8Array<ArrayBufferLike>;
    };
    readonly name: "mintRecipient";
}, {
    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 RouterHookData<N extends Network> = DeriveType<ReturnType<typeof routerHookDataLayout<N>>>;
//# sourceMappingURL=routerHookData.d.ts.map