/**
 * GrimSwap Constants
 * Chain configurations, contract addresses, and ABIs
 */
type Address = `0x${string}`;
export interface GrimAddresses {
    grimSwapZK: Address;
    grimPool: Address;
    grimSwapRouter: Address;
    groth16Verifier: Address;
    stealthRegistry: Address;
    announcer: Address;
    poolManager: Address;
}
export interface ChainConfig {
    chainId: number;
    name: string;
    rpcUrl: string;
    explorerUrl: string;
    addresses: GrimAddresses;
}
export declare const UNICHAIN_SEPOLIA_ADDRESSES: GrimAddresses;
export declare const UNICHAIN_SEPOLIA: ChainConfig;
export declare const UNICHAIN_MAINNET_ADDRESSES: GrimAddresses;
export declare const UNICHAIN_MAINNET: ChainConfig;
export declare const SUPPORTED_CHAINS: Record<number, ChainConfig>;
export declare function getChainConfig(chainId: number): ChainConfig;
/** Stealth address scheme ID for secp256k1 */
export declare const STEALTH_SCHEME_ID = 1n;
/** Meta-address length: 33 bytes spending + 33 bytes viewing */
export declare const META_ADDRESS_LENGTH = 66;
export declare const STEALTH_REGISTRY_ABI: readonly [{
    readonly type: "function";
    readonly name: "registerStealthMetaAddress";
    readonly inputs: readonly [{
        readonly name: "stealthMetaAddress";
        readonly type: "bytes";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "getStealthMetaAddress";
    readonly inputs: readonly [{
        readonly name: "account";
        readonly type: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "event";
    readonly name: "StealthMetaAddressRegistered";
    readonly inputs: readonly [{
        readonly name: "registrant";
        readonly type: "address";
        readonly indexed: true;
    }, {
        readonly name: "stealthMetaAddress";
        readonly type: "bytes";
        readonly indexed: false;
    }];
}];
export declare const ANNOUNCER_ABI: readonly [{
    readonly type: "function";
    readonly name: "announce";
    readonly inputs: readonly [{
        readonly name: "schemeId";
        readonly type: "uint256";
    }, {
        readonly name: "stealthAddress";
        readonly type: "address";
    }, {
        readonly name: "ephemeralPubKey";
        readonly type: "bytes";
    }, {
        readonly name: "metadata";
        readonly type: "bytes";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "event";
    readonly name: "Announcement";
    readonly inputs: readonly [{
        readonly name: "schemeId";
        readonly type: "uint256";
        readonly indexed: true;
    }, {
        readonly name: "stealthAddress";
        readonly type: "address";
        readonly indexed: true;
    }, {
        readonly name: "caller";
        readonly type: "address";
        readonly indexed: true;
    }, {
        readonly name: "ephemeralPubKey";
        readonly type: "bytes";
        readonly indexed: false;
    }, {
        readonly name: "metadata";
        readonly type: "bytes";
        readonly indexed: false;
    }];
}];
export declare const GRIM_POOL_ABI: readonly [{
    readonly type: "function";
    readonly name: "deposit";
    readonly inputs: readonly [{
        readonly name: "commitment";
        readonly type: "bytes32";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "payable";
}, {
    readonly type: "function";
    readonly name: "isKnownRoot";
    readonly inputs: readonly [{
        readonly name: "root";
        readonly type: "bytes32";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "isSpent";
    readonly inputs: readonly [{
        readonly name: "nullifierHash";
        readonly type: "bytes32";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getLastRoot";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "addKnownRoot";
    readonly inputs: readonly [{
        readonly name: "root";
        readonly type: "bytes32";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "getDepositCount";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint32";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "releaseForSwap";
    readonly inputs: readonly [{
        readonly name: "nullifierHash";
        readonly type: "bytes32";
    }, {
        readonly name: "recipient";
        readonly type: "address";
    }, {
        readonly name: "amount";
        readonly type: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "event";
    readonly name: "Deposit";
    readonly inputs: readonly [{
        readonly name: "commitment";
        readonly type: "bytes32";
        readonly indexed: true;
    }, {
        readonly name: "leafIndex";
        readonly type: "uint32";
        readonly indexed: false;
    }, {
        readonly name: "timestamp";
        readonly type: "uint256";
        readonly indexed: false;
    }];
}];
export declare const GRIM_SWAP_ZK_ABI: readonly [{
    readonly type: "function";
    readonly name: "totalPrivateSwaps";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "totalPrivateVolume";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "event";
    readonly name: "PrivateSwapExecuted";
    readonly inputs: readonly [{
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: true;
    }, {
        readonly name: "nullifierHash";
        readonly type: "bytes32";
        readonly indexed: true;
    }, {
        readonly name: "stealthAddress";
        readonly type: "address";
        readonly indexed: true;
    }, {
        readonly name: "amountOut";
        readonly type: "uint256";
        readonly indexed: false;
    }];
}];
export declare const GROTH16_VERIFIER_ABI: readonly [{
    readonly type: "function";
    readonly name: "verifyProof";
    readonly inputs: readonly [{
        readonly name: "_pA";
        readonly type: "uint256[2]";
    }, {
        readonly name: "_pB";
        readonly type: "uint256[2][2]";
    }, {
        readonly name: "_pC";
        readonly type: "uint256[2]";
    }, {
        readonly name: "_pubSignals";
        readonly type: "uint256[8]";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
    }];
    readonly stateMutability: "view";
}];
export declare const GRIM_SWAP_ROUTER_ABI: readonly [{
    readonly type: "function";
    readonly name: "executePrivateSwap";
    readonly inputs: readonly [{
        readonly name: "key";
        readonly type: "tuple";
        readonly components: readonly [{
            readonly name: "currency0";
            readonly type: "address";
        }, {
            readonly name: "currency1";
            readonly type: "address";
        }, {
            readonly name: "fee";
            readonly type: "uint24";
        }, {
            readonly name: "tickSpacing";
            readonly type: "int24";
        }, {
            readonly name: "hooks";
            readonly type: "address";
        }];
    }, {
        readonly name: "params";
        readonly type: "tuple";
        readonly components: readonly [{
            readonly name: "zeroForOne";
            readonly type: "bool";
        }, {
            readonly name: "amountSpecified";
            readonly type: "int256";
        }, {
            readonly name: "sqrtPriceLimitX96";
            readonly type: "uint160";
        }];
    }, {
        readonly name: "nullifierHash";
        readonly type: "bytes32";
    }, {
        readonly name: "recipient";
        readonly type: "address";
    }, {
        readonly name: "relayer";
        readonly type: "address";
    }, {
        readonly name: "relayerFee";
        readonly type: "uint256";
    }, {
        readonly name: "pA";
        readonly type: "uint256[2]";
    }, {
        readonly name: "pB";
        readonly type: "uint256[2][2]";
    }, {
        readonly name: "pC";
        readonly type: "uint256[2]";
    }, {
        readonly name: "pubSignals";
        readonly type: "uint256[8]";
    }];
    readonly outputs: readonly [{
        readonly name: "amountOut";
        readonly type: "uint256";
    }];
    readonly stateMutability: "nonpayable";
}];
export declare const RELAYER_DEFAULT_URL = "https://services.grimswap.com";
export {};
//# sourceMappingURL=constants.d.ts.map