import { AbiParametersToPrimitiveTypes, ExtractAbiFunction } from 'abitype'; import { Address, Hash } from 'viem'; import type { multiSourceLoanABI as multiSourceLoanABIV4 } from './generated/blockchain/v4'; import type { auctionLoanLiquidatorABI as auctionLoanLiquidatorABIV5, multiSourceLoanABI as multiSourceLoanABIV5 } from './generated/blockchain/v5'; import type { auctionLoanLiquidatorAbi as auctionLoanLiquidatorABIV6, multiSourceLoanAbi as multiSourceLoanABIV6 } from './generated/blockchain/v6'; import type { multiSourceLoanAbi as multiSourceLoanABIV7 } from './generated/blockchain/v7'; import type { multiSourceLoanAbi as multiSourceLoanABIV8 } from './generated/blockchain/v8'; type RepayAbiTypeV4 = AbiParametersToPrimitiveTypes['inputs']>; type RepayAbiTypeV5 = AbiParametersToPrimitiveTypes['inputs']>; type RepayAbiTypeV6 = AbiParametersToPrimitiveTypes['inputs']>; type EmitAbiTypeV4 = AbiParametersToPrimitiveTypes['inputs']>; type EmitAbiTypeV5 = AbiParametersToPrimitiveTypes['inputs']>; type EmitAbiTypeV6 = AbiParametersToPrimitiveTypes['inputs']>; type EmitAbiTypeV7 = AbiParametersToPrimitiveTypes['inputs']>; type EmitAbiTypeV8 = AbiParametersToPrimitiveTypes['inputs']>; type RepayAbiTypeV8 = AbiParametersToPrimitiveTypes['inputs']>; type RefiAbiTypeV4 = AbiParametersToPrimitiveTypes['inputs']>; type RefiAbiTypeV5 = AbiParametersToPrimitiveTypes['inputs']>; type RefiAbiTypeV6 = AbiParametersToPrimitiveTypes['inputs']>; type PlaceBidAbiTypeV5 = AbiParametersToPrimitiveTypes['inputs']>; type PlaceBidAbiTypeV6 = AbiParametersToPrimitiveTypes['inputs']>; export type LoanV4 = RepayAbiTypeV4[2] & { contractAddress: Address; }; export type LoanV5 = RepayAbiTypeV5[0]['loan'] & { contractAddress: Address; startTime: Date | bigint; }; export type LoanV6 = RepayAbiTypeV6[0]['loan'] & { contractAddress: Address; startTime: Date | bigint; contractStartTime: Date | bigint; }; export type LoanV8 = RepayAbiTypeV8[0]['loan'] & { contractAddress: Address; startTime: Date | bigint; contractStartTime: Date | bigint; }; export type Loan = LoanV4 | LoanV5 | LoanV6 | LoanV8; export type OfferV4 = EmitAbiTypeV4[0]; export type OfferV5 = EmitAbiTypeV5[0]['executionData']['offer']; export type OfferV6 = EmitAbiTypeV6[0]['executionData']['offerExecution'][number]['offer']; export type OfferV8 = EmitAbiTypeV8[0]['executionData']['offerExecution'][number]['offer']; export type RenegotiationV4 = RefiAbiTypeV4[0]; export type RenegotiationV5 = RefiAbiTypeV5[0]; export type RenegotiationV6 = RefiAbiTypeV6[0]; export type SignableRepaymentDataV5 = RepayAbiTypeV5[0]['data']; export type SignableRepaymentDataV6 = RepayAbiTypeV6[0]['data']; export type ExecutionDataV6 = EmitAbiTypeV6[0]['executionData']; export type ExecutionDataV7 = EmitAbiTypeV7[0]['executionData']; export type ExecutionDataV8 = EmitAbiTypeV8[0]['executionData']; type AuctionV5 = PlaceBidAbiTypeV5[2]; type AuctionV6 = PlaceBidAbiTypeV6[2]; export type Auction = AuctionV5 | AuctionV6; export type HexString = `0x${string}`; export type Signature = HexString; export declare const zeroAddress: Address; export declare const zeroHash: Hash; export declare const zeroHex: HexString; export declare const REORG_SAFETY_BUFFER: bigint; /** How long a borrower's signed loan execution data stays valid once it is sent on-chain. */ export declare const BORROWER_SIGNATURE_LIFETIME: bigint; /** Native ETH marker on Ethereum mainnet: the zero address. */ export declare const __ETH_ADDRESS: `0x${string}`; /** Synthetic sentinel the Gondi API uses for native HYPE on HyperEVM. */ export declare const __HYPE_ADDRESS = "0x0000000000000000000000000000000000000999"; /** Synthetic sentinel the Gondi API uses for native ETH on the Robinhood chain. */ export declare const __RETH_ADDRESS = "0x0000000000000000000000000000000000004663"; /** * Whether a currency address returned by the Gondi API represents a chain's native currency. * * The zero address only marks native ETH on Ethereum; HyperEVM and Robinhood orders carry the * synthetic sentinels above instead, so never compare a currency address against the zero * address to decide native-ness. */ export declare const isNativeCurrency: (address: Address) => boolean; export {};