import { type Address } from "viem"; import type { EVMWalletClient } from "../../../wallets/evm"; import type { DepositWalletBatchCall } from "../deposit-wallet/types"; export type PolymarketPreflightContractAddresses = { pusd: Address; ctf: Address; exchange: Address; negRiskExchange: Address; negRiskAdapter: Address; }; export declare function getPolymarketPreflightContractAddresses(chainId: number): PolymarketPreflightContractAddresses; export declare const POLYMARKET_CONTRACT_ADDRESSES: PolymarketPreflightContractAddresses; export type DepositWalletApprovalRequirement = { kind: "erc20"; token: "pUSD"; tokenAddress: Address; spender: Address; amount: bigint; } | { approved: boolean; ctfAddress: Address; kind: "ctf-operator"; operator: Address; }; export type DepositWalletAllowanceGap = DepositWalletApprovalRequirement & { current: bigint | boolean; }; export declare function requiredDepositWalletPreflightApprovals(addresses?: typeof POLYMARKET_CONTRACT_ADDRESSES): DepositWalletApprovalRequirement[]; export declare function buildPusdApproveCall({ amount, spender, token, }: { amount?: bigint; spender: Address; token?: Address; }): DepositWalletBatchCall; export declare function buildCtfSetApprovalForAllCall({ approved, ctf, operator, }: { approved?: boolean; ctf?: Address; operator: Address; }): DepositWalletBatchCall; export declare function buildDepositWalletPreflightCalls(requirements: DepositWalletApprovalRequirement[]): DepositWalletBatchCall[]; export declare function checkDepositWalletAllowanceGaps({ depositWalletAddress, requirements, walletClient, }: { depositWalletAddress: Address; requirements?: DepositWalletApprovalRequirement[]; walletClient: EVMWalletClient; }): Promise;