import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace Position { type KeyStruct = { owner: AddressLike; operator: AddressLike; lower: BigNumberish; upper: BigNumberish; orderType: BigNumberish; }; type KeyStructOutput = [ owner: string, operator: string, lower: bigint, upper: bigint, orderType: bigint ] & { owner: string; operator: string; lower: bigint; upper: bigint; orderType: bigint; }; type DeltaStruct = { collateral: BigNumberish; longs: BigNumberish; shorts: BigNumberish; }; type DeltaStructOutput = [ collateral: bigint, longs: bigint, shorts: bigint ] & { collateral: bigint; longs: bigint; shorts: bigint; }; } export declare namespace IPoolInternal { type QuoteOBStruct = { provider: AddressLike; taker: AddressLike; price: BigNumberish; size: BigNumberish; isBuy: boolean; deadline: BigNumberish; salt: BigNumberish; }; type QuoteOBStructOutput = [ provider: string, taker: string, price: bigint, size: bigint, isBuy: boolean, deadline: bigint, salt: bigint ] & { provider: string; taker: string; price: bigint; size: bigint; isBuy: boolean; deadline: bigint; salt: bigint; }; type SignatureStruct = { v: BigNumberish; r: BytesLike; s: BytesLike; }; type SignatureStructOutput = [v: bigint, r: string, s: string] & { v: bigint; r: string; s: string; }; type TickStruct = { delta: BigNumberish; externalFeeRate: BigNumberish; longDelta: BigNumberish; shortDelta: BigNumberish; counter: BigNumberish; }; type TickStructOutput = [ delta: bigint, externalFeeRate: bigint, longDelta: bigint, shortDelta: bigint, counter: bigint ] & { delta: bigint; externalFeeRate: bigint; longDelta: bigint; shortDelta: bigint; counter: bigint; }; type TickWithRatesStruct = { tick: IPoolInternal.TickStruct; price: BigNumberish; longRate: BigNumberish; shortRate: BigNumberish; }; type TickWithRatesStructOutput = [ tick: IPoolInternal.TickStructOutput, price: bigint, longRate: bigint, shortRate: bigint ] & { tick: IPoolInternal.TickStructOutput; price: bigint; longRate: bigint; shortRate: bigint; }; } export interface IPoolInterface extends Interface { getFunction(nameOrSignature: "_takerFeeLowLevel" | "accountsByToken" | "annihilate" | "annihilateFor" | "balanceOf" | "balanceOfBatch" | "cancelQuotesOB" | "claim" | "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256)" | "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256,bool)" | "exercise" | "exerciseFor" | "fillQuoteOB" | "flashFee" | "flashLoan" | "getClaimableFees" | "getNearestTicksBelow" | "getPoolSettings" | "getQuoteAMM" | "getQuoteOBFilledAmount" | "getSettlementPrice" | "getStrandedArea" | "getTokenIds" | "isApprovedForAll" | "isQuoteOBValid" | "marketPrice" | "maxFlashLoan" | "multicall" | "name" | "safeBatchTransferFrom" | "safeTransferFrom" | "setApprovalForAll" | "settle" | "settleFor" | "settlePosition" | "settlePositionFor" | "supportsInterface" | "takerFee" | "ticks" | "tokensByAccount" | "totalHolders" | "totalSupply" | "trade" | "transferPosition" | "tryCacheSettlementPrice" | "withdraw" | "writeFrom"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Annihilate" | "ApprovalForAll" | "CancelQuoteOB" | "ClaimFees" | "ClaimProtocolFees" | "Deposit" | "Exercise" | "FillQuoteOB" | "FlashLoan" | "Settle" | "SettlePosition" | "SettlementPriceCached" | "Trade" | "TransferBatch" | "TransferPosition" | "TransferSingle" | "UpdateTick" | "Withdrawal" | "WriteFrom"): EventFragment; encodeFunctionData(functionFragment: "_takerFeeLowLevel", values: [ AddressLike, BigNumberish, BigNumberish, boolean, boolean, BigNumberish, boolean ]): string; encodeFunctionData(functionFragment: "accountsByToken", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "annihilate", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "annihilateFor", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOfBatch", values: [AddressLike[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "cancelQuotesOB", values: [BytesLike[]]): string; encodeFunctionData(functionFragment: "claim", values: [Position.KeyStruct]): string; encodeFunctionData(functionFragment: "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256)", values: [ Position.KeyStruct, BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256,bool)", values: [ Position.KeyStruct, BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish, boolean ]): string; encodeFunctionData(functionFragment: "exercise", values?: undefined): string; encodeFunctionData(functionFragment: "exerciseFor", values: [AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "fillQuoteOB", values: [ IPoolInternal.QuoteOBStruct, BigNumberish, IPoolInternal.SignatureStruct, AddressLike ]): string; encodeFunctionData(functionFragment: "flashFee", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "flashLoan", values: [AddressLike, AddressLike, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "getClaimableFees", values: [Position.KeyStruct]): string; encodeFunctionData(functionFragment: "getNearestTicksBelow", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getPoolSettings", values?: undefined): string; encodeFunctionData(functionFragment: "getQuoteAMM", values: [AddressLike, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "getQuoteOBFilledAmount", values: [AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "getSettlementPrice", values?: undefined): string; encodeFunctionData(functionFragment: "getStrandedArea", values?: undefined): string; encodeFunctionData(functionFragment: "getTokenIds", values?: undefined): string; encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "isQuoteOBValid", values: [ AddressLike, IPoolInternal.QuoteOBStruct, BigNumberish, IPoolInternal.SignatureStruct ]): string; encodeFunctionData(functionFragment: "marketPrice", values?: undefined): string; encodeFunctionData(functionFragment: "maxFlashLoan", values: [AddressLike]): string; encodeFunctionData(functionFragment: "multicall", values: [BytesLike[]]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "safeBatchTransferFrom", values: [ AddressLike, AddressLike, BigNumberish[], BigNumberish[], BytesLike ]): string; encodeFunctionData(functionFragment: "safeTransferFrom", values: [AddressLike, AddressLike, BigNumberish, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "settle", values?: undefined): string; encodeFunctionData(functionFragment: "settleFor", values: [AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "settlePosition", values: [Position.KeyStruct]): string; encodeFunctionData(functionFragment: "settlePositionFor", values: [Position.KeyStruct[], BigNumberish]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "takerFee", values: [AddressLike, BigNumberish, BigNumberish, boolean, boolean]): string; encodeFunctionData(functionFragment: "ticks", values?: undefined): string; encodeFunctionData(functionFragment: "tokensByAccount", values: [AddressLike]): string; encodeFunctionData(functionFragment: "totalHolders", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "totalSupply", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "trade", values: [BigNumberish, boolean, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "transferPosition", values: [Position.KeyStruct, AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "tryCacheSettlementPrice", values?: undefined): string; encodeFunctionData(functionFragment: "withdraw", values: [Position.KeyStruct, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "writeFrom", values: [AddressLike, AddressLike, BigNumberish, AddressLike]): string; decodeFunctionResult(functionFragment: "_takerFeeLowLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "accountsByToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "annihilate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "annihilateFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOfBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelQuotesOB", data: BytesLike): Result; decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256,bool)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "exercise", data: BytesLike): Result; decodeFunctionResult(functionFragment: "exerciseFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fillQuoteOB", data: BytesLike): Result; decodeFunctionResult(functionFragment: "flashFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "flashLoan", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getClaimableFees", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getNearestTicksBelow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPoolSettings", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getQuoteAMM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getQuoteOBFilledAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSettlementPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStrandedArea", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTokenIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isQuoteOBValid", data: BytesLike): Result; decodeFunctionResult(functionFragment: "marketPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "maxFlashLoan", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeBatchTransferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeTransferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settleFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settlePosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settlePositionFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "takerFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ticks", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokensByAccount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalHolders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "trade", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferPosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tryCacheSettlementPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; decodeFunctionResult(functionFragment: "writeFrom", data: BytesLike): Result; } export declare namespace AnnihilateEvent { type InputTuple = [ owner: AddressLike, contractSize: BigNumberish, fee: BigNumberish ]; type OutputTuple = [owner: string, contractSize: bigint, fee: bigint]; interface OutputObject { owner: string; contractSize: bigint; fee: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ApprovalForAllEvent { type InputTuple = [ account: AddressLike, operator: AddressLike, approved: boolean ]; type OutputTuple = [ account: string, operator: string, approved: boolean ]; interface OutputObject { account: string; operator: string; approved: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CancelQuoteOBEvent { type InputTuple = [provider: AddressLike, quoteOBHash: BytesLike]; type OutputTuple = [provider: string, quoteOBHash: string]; interface OutputObject { provider: string; quoteOBHash: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ClaimFeesEvent { type InputTuple = [ owner: AddressLike, tokenId: BigNumberish, feesClaimed: BigNumberish, lastFeeRate: BigNumberish ]; type OutputTuple = [ owner: string, tokenId: bigint, feesClaimed: bigint, lastFeeRate: bigint ]; interface OutputObject { owner: string; tokenId: bigint; feesClaimed: bigint; lastFeeRate: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ClaimProtocolFeesEvent { type InputTuple = [ feeReceiver: AddressLike, feesClaimed: BigNumberish ]; type OutputTuple = [feeReceiver: string, feesClaimed: bigint]; interface OutputObject { feeReceiver: string; feesClaimed: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DepositEvent { type InputTuple = [ owner: AddressLike, tokenId: BigNumberish, contractSize: BigNumberish, collateral: BigNumberish, longs: BigNumberish, shorts: BigNumberish, lastFeeRate: BigNumberish, claimableFees: BigNumberish, marketPrice: BigNumberish, liquidityRate: BigNumberish, currentTick: BigNumberish ]; type OutputTuple = [ owner: string, tokenId: bigint, contractSize: bigint, collateral: bigint, longs: bigint, shorts: bigint, lastFeeRate: bigint, claimableFees: bigint, marketPrice: bigint, liquidityRate: bigint, currentTick: bigint ]; interface OutputObject { owner: string; tokenId: bigint; contractSize: bigint; collateral: bigint; longs: bigint; shorts: bigint; lastFeeRate: bigint; claimableFees: bigint; marketPrice: bigint; liquidityRate: bigint; currentTick: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ExerciseEvent { type InputTuple = [ operator: AddressLike, holder: AddressLike, contractSize: BigNumberish, exerciseValue: BigNumberish, settlementPrice: BigNumberish, fee: BigNumberish, operatorCost: BigNumberish ]; type OutputTuple = [ operator: string, holder: string, contractSize: bigint, exerciseValue: bigint, settlementPrice: bigint, fee: bigint, operatorCost: bigint ]; interface OutputObject { operator: string; holder: string; contractSize: bigint; exerciseValue: bigint; settlementPrice: bigint; fee: bigint; operatorCost: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FillQuoteOBEvent { type InputTuple = [ quoteOBHash: BytesLike, user: AddressLike, provider: AddressLike, contractSize: BigNumberish, deltaMaker: Position.DeltaStruct, deltaTaker: Position.DeltaStruct, premium: BigNumberish, protocolFee: BigNumberish, totalReferralRebate: BigNumberish, isBuy: boolean ]; type OutputTuple = [ quoteOBHash: string, user: string, provider: string, contractSize: bigint, deltaMaker: Position.DeltaStructOutput, deltaTaker: Position.DeltaStructOutput, premium: bigint, protocolFee: bigint, totalReferralRebate: bigint, isBuy: boolean ]; interface OutputObject { quoteOBHash: string; user: string; provider: string; contractSize: bigint; deltaMaker: Position.DeltaStructOutput; deltaTaker: Position.DeltaStructOutput; premium: bigint; protocolFee: bigint; totalReferralRebate: bigint; isBuy: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FlashLoanEvent { type InputTuple = [ initiator: AddressLike, receiver: AddressLike, amount: BigNumberish, fee: BigNumberish ]; type OutputTuple = [ initiator: string, receiver: string, amount: bigint, fee: bigint ]; interface OutputObject { initiator: string; receiver: string; amount: bigint; fee: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SettleEvent { type InputTuple = [ operator: AddressLike, holder: AddressLike, contractSize: BigNumberish, exerciseValue: BigNumberish, settlementPrice: BigNumberish, fee: BigNumberish, operatorCost: BigNumberish ]; type OutputTuple = [ operator: string, holder: string, contractSize: bigint, exerciseValue: bigint, settlementPrice: bigint, fee: bigint, operatorCost: bigint ]; interface OutputObject { operator: string; holder: string; contractSize: bigint; exerciseValue: bigint; settlementPrice: bigint; fee: bigint; operatorCost: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SettlePositionEvent { type InputTuple = [ operator: AddressLike, owner: AddressLike, tokenId: BigNumberish, contractSize: BigNumberish, collateral: BigNumberish, exerciseValue: BigNumberish, feesClaimed: BigNumberish, settlementPrice: BigNumberish, fee: BigNumberish, operatorCost: BigNumberish ]; type OutputTuple = [ operator: string, owner: string, tokenId: bigint, contractSize: bigint, collateral: bigint, exerciseValue: bigint, feesClaimed: bigint, settlementPrice: bigint, fee: bigint, operatorCost: bigint ]; interface OutputObject { operator: string; owner: string; tokenId: bigint; contractSize: bigint; collateral: bigint; exerciseValue: bigint; feesClaimed: bigint; settlementPrice: bigint; fee: bigint; operatorCost: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SettlementPriceCachedEvent { type InputTuple = [settlementPrice: BigNumberish]; type OutputTuple = [settlementPrice: bigint]; interface OutputObject { settlementPrice: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TradeEvent { type InputTuple = [ user: AddressLike, contractSize: BigNumberish, delta: Position.DeltaStruct, premium: BigNumberish, takerFee: BigNumberish, protocolFee: BigNumberish, marketPrice: BigNumberish, liquidityRate: BigNumberish, currentTick: BigNumberish, totalReferralRebate: BigNumberish, isBuy: boolean ]; type OutputTuple = [ user: string, contractSize: bigint, delta: Position.DeltaStructOutput, premium: bigint, takerFee: bigint, protocolFee: bigint, marketPrice: bigint, liquidityRate: bigint, currentTick: bigint, totalReferralRebate: bigint, isBuy: boolean ]; interface OutputObject { user: string; contractSize: bigint; delta: Position.DeltaStructOutput; premium: bigint; takerFee: bigint; protocolFee: bigint; marketPrice: bigint; liquidityRate: bigint; currentTick: bigint; totalReferralRebate: bigint; isBuy: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferBatchEvent { type InputTuple = [ operator: AddressLike, from: AddressLike, to: AddressLike, ids: BigNumberish[], values: BigNumberish[] ]; type OutputTuple = [ operator: string, from: string, to: string, ids: bigint[], values: bigint[] ]; interface OutputObject { operator: string; from: string; to: string; ids: bigint[]; values: bigint[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferPositionEvent { type InputTuple = [ owner: AddressLike, receiver: AddressLike, srcTokenId: BigNumberish, destTokenId: BigNumberish, contractSize: BigNumberish ]; type OutputTuple = [ owner: string, receiver: string, srcTokenId: bigint, destTokenId: bigint, contractSize: bigint ]; interface OutputObject { owner: string; receiver: string; srcTokenId: bigint; destTokenId: bigint; contractSize: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferSingleEvent { type InputTuple = [ operator: AddressLike, from: AddressLike, to: AddressLike, id: BigNumberish, value: BigNumberish ]; type OutputTuple = [ operator: string, from: string, to: string, id: bigint, value: bigint ]; interface OutputObject { operator: string; from: string; to: string; id: bigint; value: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateTickEvent { type InputTuple = [ tick: BigNumberish, prev: BigNumberish, next: BigNumberish, delta: BigNumberish, externalFeeRate: BigNumberish, longDelta: BigNumberish, shortDelta: BigNumberish, counter: BigNumberish ]; type OutputTuple = [ tick: bigint, prev: bigint, next: bigint, delta: bigint, externalFeeRate: bigint, longDelta: bigint, shortDelta: bigint, counter: bigint ]; interface OutputObject { tick: bigint; prev: bigint; next: bigint; delta: bigint; externalFeeRate: bigint; longDelta: bigint; shortDelta: bigint; counter: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WithdrawalEvent { type InputTuple = [ owner: AddressLike, tokenId: BigNumberish, contractSize: BigNumberish, collateral: BigNumberish, longs: BigNumberish, shorts: BigNumberish, lastFeeRate: BigNumberish, claimableFees: BigNumberish, marketPrice: BigNumberish, liquidityRate: BigNumberish, currentTick: BigNumberish ]; type OutputTuple = [ owner: string, tokenId: bigint, contractSize: bigint, collateral: bigint, longs: bigint, shorts: bigint, lastFeeRate: bigint, claimableFees: bigint, marketPrice: bigint, liquidityRate: bigint, currentTick: bigint ]; interface OutputObject { owner: string; tokenId: bigint; contractSize: bigint; collateral: bigint; longs: bigint; shorts: bigint; lastFeeRate: bigint; claimableFees: bigint; marketPrice: bigint; liquidityRate: bigint; currentTick: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WriteFromEvent { type InputTuple = [ underwriter: AddressLike, longReceiver: AddressLike, taker: AddressLike, contractSize: BigNumberish, collateral: BigNumberish, protocolFee: BigNumberish ]; type OutputTuple = [ underwriter: string, longReceiver: string, taker: string, contractSize: bigint, collateral: bigint, protocolFee: bigint ]; interface OutputObject { underwriter: string; longReceiver: string; taker: string; contractSize: bigint; collateral: bigint; protocolFee: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IPool extends BaseContract { connect(runner?: ContractRunner | null): IPool; waitForDeployment(): Promise; interface: IPoolInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; _takerFeeLowLevel: TypedContractMethod<[ taker: AddressLike, size: BigNumberish, premium: BigNumberish, isPremiumNormalized: boolean, isOrderbook: boolean, strike: BigNumberish, isCallPool: boolean ], [ bigint ], "view">; accountsByToken: TypedContractMethod<[id: BigNumberish], [string[]], "view">; annihilate: TypedContractMethod<[size: BigNumberish], [void], "nonpayable">; annihilateFor: TypedContractMethod<[ owner: AddressLike, size: BigNumberish ], [ void ], "nonpayable">; balanceOf: TypedContractMethod<[ account: AddressLike, id: BigNumberish ], [ bigint ], "view">; balanceOfBatch: TypedContractMethod<[ accounts: AddressLike[], ids: BigNumberish[] ], [ bigint[] ], "view">; cancelQuotesOB: TypedContractMethod<[ hashes: BytesLike[] ], [ void ], "nonpayable">; claim: TypedContractMethod<[p: Position.KeyStruct], [bigint], "nonpayable">; "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256)": TypedContractMethod<[ p: Position.KeyStruct, belowLower: BigNumberish, belowUpper: BigNumberish, size: BigNumberish, minMarketPrice: BigNumberish, maxMarketPrice: BigNumberish ], [ Position.DeltaStructOutput ], "nonpayable">; "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256,bool)": TypedContractMethod<[ p: Position.KeyStruct, belowLower: BigNumberish, belowUpper: BigNumberish, size: BigNumberish, minMarketPrice: BigNumberish, maxMarketPrice: BigNumberish, isBidIfStrandedMarketPrice: boolean ], [ Position.DeltaStructOutput ], "nonpayable">; exercise: TypedContractMethod<[ ], [ [bigint, bigint] & { exerciseValue: bigint; exerciseFee: bigint; } ], "nonpayable">; exerciseFor: TypedContractMethod<[ holders: AddressLike[], costPerHolder: BigNumberish ], [ [ bigint[], bigint[] ] & { exerciseValues: bigint[]; exerciseFees: bigint[]; } ], "nonpayable">; fillQuoteOB: TypedContractMethod<[ quoteOB: IPoolInternal.QuoteOBStruct, size: BigNumberish, signature: IPoolInternal.SignatureStruct, referrer: AddressLike ], [ [ bigint, Position.DeltaStructOutput ] & { premiumTaker: bigint; delta: Position.DeltaStructOutput; } ], "nonpayable">; flashFee: TypedContractMethod<[ token: AddressLike, amount: BigNumberish ], [ bigint ], "view">; flashLoan: TypedContractMethod<[ receiver: AddressLike, token: AddressLike, amount: BigNumberish, data: BytesLike ], [ boolean ], "nonpayable">; getClaimableFees: TypedContractMethod<[ p: Position.KeyStruct ], [ bigint ], "view">; getNearestTicksBelow: TypedContractMethod<[ lower: BigNumberish, upper: BigNumberish ], [ [ bigint, bigint ] & { nearestBelowLower: bigint; nearestBelowUpper: bigint; } ], "view">; getPoolSettings: TypedContractMethod<[ ], [ [ string, string, string, bigint, bigint, boolean ] & { base: string; quote: string; oracleAdapter: string; strike: bigint; maturity: bigint; isCallPool: boolean; } ], "view">; getQuoteAMM: TypedContractMethod<[ taker: AddressLike, size: BigNumberish, isBuy: boolean ], [ [bigint, bigint] & { premiumNet: bigint; takerFee: bigint; } ], "view">; getQuoteOBFilledAmount: TypedContractMethod<[ provider: AddressLike, quoteOBHash: BytesLike ], [ bigint ], "view">; getSettlementPrice: TypedContractMethod<[], [bigint], "view">; getStrandedArea: TypedContractMethod<[ ], [ [bigint, bigint] & { lower: bigint; upper: bigint; } ], "view">; getTokenIds: TypedContractMethod<[], [bigint[]], "view">; isApprovedForAll: TypedContractMethod<[ account: AddressLike, operator: AddressLike ], [ boolean ], "view">; isQuoteOBValid: TypedContractMethod<[ user: AddressLike, quoteOB: IPoolInternal.QuoteOBStruct, size: BigNumberish, sig: IPoolInternal.SignatureStruct ], [ [boolean, bigint] ], "view">; marketPrice: TypedContractMethod<[], [bigint], "view">; maxFlashLoan: TypedContractMethod<[token: AddressLike], [bigint], "view">; multicall: TypedContractMethod<[data: BytesLike[]], [string[]], "nonpayable">; name: TypedContractMethod<[], [string], "view">; safeBatchTransferFrom: TypedContractMethod<[ from: AddressLike, to: AddressLike, ids: BigNumberish[], amounts: BigNumberish[], data: BytesLike ], [ void ], "nonpayable">; safeTransferFrom: TypedContractMethod<[ from: AddressLike, to: AddressLike, id: BigNumberish, amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; setApprovalForAll: TypedContractMethod<[ operator: AddressLike, status: boolean ], [ void ], "nonpayable">; settle: TypedContractMethod<[], [bigint], "nonpayable">; settleFor: TypedContractMethod<[ holders: AddressLike[], costPerHolder: BigNumberish ], [ bigint[] ], "nonpayable">; settlePosition: TypedContractMethod<[ p: Position.KeyStruct ], [ bigint ], "nonpayable">; settlePositionFor: TypedContractMethod<[ p: Position.KeyStruct[], costPerHolder: BigNumberish ], [ bigint[] ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; takerFee: TypedContractMethod<[ taker: AddressLike, size: BigNumberish, premium: BigNumberish, isPremiumNormalized: boolean, isOrderbook: boolean ], [ bigint ], "view">; ticks: TypedContractMethod<[ ], [ IPoolInternal.TickWithRatesStructOutput[] ], "view">; tokensByAccount: TypedContractMethod<[ account: AddressLike ], [ bigint[] ], "view">; totalHolders: TypedContractMethod<[id: BigNumberish], [bigint], "view">; totalSupply: TypedContractMethod<[id: BigNumberish], [bigint], "view">; trade: TypedContractMethod<[ size: BigNumberish, isBuy: boolean, premiumLimit: BigNumberish, referrer: AddressLike ], [ [ bigint, Position.DeltaStructOutput ] & { totalPremium: bigint; delta: Position.DeltaStructOutput; } ], "nonpayable">; transferPosition: TypedContractMethod<[ srcP: Position.KeyStruct, newOwner: AddressLike, newOperator: AddressLike, size: BigNumberish ], [ void ], "nonpayable">; tryCacheSettlementPrice: TypedContractMethod<[], [void], "nonpayable">; withdraw: TypedContractMethod<[ p: Position.KeyStruct, size: BigNumberish, minMarketPrice: BigNumberish, maxMarketPrice: BigNumberish ], [ Position.DeltaStructOutput ], "nonpayable">; writeFrom: TypedContractMethod<[ underwriter: AddressLike, longReceiver: AddressLike, size: BigNumberish, referrer: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "_takerFeeLowLevel"): TypedContractMethod<[ taker: AddressLike, size: BigNumberish, premium: BigNumberish, isPremiumNormalized: boolean, isOrderbook: boolean, strike: BigNumberish, isCallPool: boolean ], [ bigint ], "view">; getFunction(nameOrSignature: "accountsByToken"): TypedContractMethod<[id: BigNumberish], [string[]], "view">; getFunction(nameOrSignature: "annihilate"): TypedContractMethod<[size: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "annihilateFor"): TypedContractMethod<[ owner: AddressLike, size: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[ account: AddressLike, id: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "balanceOfBatch"): TypedContractMethod<[ accounts: AddressLike[], ids: BigNumberish[] ], [ bigint[] ], "view">; getFunction(nameOrSignature: "cancelQuotesOB"): TypedContractMethod<[hashes: BytesLike[]], [void], "nonpayable">; getFunction(nameOrSignature: "claim"): TypedContractMethod<[p: Position.KeyStruct], [bigint], "nonpayable">; getFunction(nameOrSignature: "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256)"): TypedContractMethod<[ p: Position.KeyStruct, belowLower: BigNumberish, belowUpper: BigNumberish, size: BigNumberish, minMarketPrice: BigNumberish, maxMarketPrice: BigNumberish ], [ Position.DeltaStructOutput ], "nonpayable">; getFunction(nameOrSignature: "deposit((address,address,uint256,uint256,uint8),uint256,uint256,uint256,uint256,uint256,bool)"): TypedContractMethod<[ p: Position.KeyStruct, belowLower: BigNumberish, belowUpper: BigNumberish, size: BigNumberish, minMarketPrice: BigNumberish, maxMarketPrice: BigNumberish, isBidIfStrandedMarketPrice: boolean ], [ Position.DeltaStructOutput ], "nonpayable">; getFunction(nameOrSignature: "exercise"): TypedContractMethod<[ ], [ [bigint, bigint] & { exerciseValue: bigint; exerciseFee: bigint; } ], "nonpayable">; getFunction(nameOrSignature: "exerciseFor"): TypedContractMethod<[ holders: AddressLike[], costPerHolder: BigNumberish ], [ [ bigint[], bigint[] ] & { exerciseValues: bigint[]; exerciseFees: bigint[]; } ], "nonpayable">; getFunction(nameOrSignature: "fillQuoteOB"): TypedContractMethod<[ quoteOB: IPoolInternal.QuoteOBStruct, size: BigNumberish, signature: IPoolInternal.SignatureStruct, referrer: AddressLike ], [ [ bigint, Position.DeltaStructOutput ] & { premiumTaker: bigint; delta: Position.DeltaStructOutput; } ], "nonpayable">; getFunction(nameOrSignature: "flashFee"): TypedContractMethod<[ token: AddressLike, amount: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "flashLoan"): TypedContractMethod<[ receiver: AddressLike, token: AddressLike, amount: BigNumberish, data: BytesLike ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "getClaimableFees"): TypedContractMethod<[p: Position.KeyStruct], [bigint], "view">; getFunction(nameOrSignature: "getNearestTicksBelow"): TypedContractMethod<[ lower: BigNumberish, upper: BigNumberish ], [ [ bigint, bigint ] & { nearestBelowLower: bigint; nearestBelowUpper: bigint; } ], "view">; getFunction(nameOrSignature: "getPoolSettings"): TypedContractMethod<[ ], [ [ string, string, string, bigint, bigint, boolean ] & { base: string; quote: string; oracleAdapter: string; strike: bigint; maturity: bigint; isCallPool: boolean; } ], "view">; getFunction(nameOrSignature: "getQuoteAMM"): TypedContractMethod<[ taker: AddressLike, size: BigNumberish, isBuy: boolean ], [ [bigint, bigint] & { premiumNet: bigint; takerFee: bigint; } ], "view">; getFunction(nameOrSignature: "getQuoteOBFilledAmount"): TypedContractMethod<[ provider: AddressLike, quoteOBHash: BytesLike ], [ bigint ], "view">; getFunction(nameOrSignature: "getSettlementPrice"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getStrandedArea"): TypedContractMethod<[ ], [ [bigint, bigint] & { lower: bigint; upper: bigint; } ], "view">; getFunction(nameOrSignature: "getTokenIds"): TypedContractMethod<[], [bigint[]], "view">; getFunction(nameOrSignature: "isApprovedForAll"): TypedContractMethod<[ account: AddressLike, operator: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "isQuoteOBValid"): TypedContractMethod<[ user: AddressLike, quoteOB: IPoolInternal.QuoteOBStruct, size: BigNumberish, sig: IPoolInternal.SignatureStruct ], [ [boolean, bigint] ], "view">; getFunction(nameOrSignature: "marketPrice"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "maxFlashLoan"): TypedContractMethod<[token: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "multicall"): TypedContractMethod<[data: BytesLike[]], [string[]], "nonpayable">; getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "safeBatchTransferFrom"): TypedContractMethod<[ from: AddressLike, to: AddressLike, ids: BigNumberish[], amounts: BigNumberish[], data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "safeTransferFrom"): TypedContractMethod<[ from: AddressLike, to: AddressLike, id: BigNumberish, amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setApprovalForAll"): TypedContractMethod<[ operator: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "settle"): TypedContractMethod<[], [bigint], "nonpayable">; getFunction(nameOrSignature: "settleFor"): TypedContractMethod<[ holders: AddressLike[], costPerHolder: BigNumberish ], [ bigint[] ], "nonpayable">; getFunction(nameOrSignature: "settlePosition"): TypedContractMethod<[p: Position.KeyStruct], [bigint], "nonpayable">; getFunction(nameOrSignature: "settlePositionFor"): TypedContractMethod<[ p: Position.KeyStruct[], costPerHolder: BigNumberish ], [ bigint[] ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "takerFee"): TypedContractMethod<[ taker: AddressLike, size: BigNumberish, premium: BigNumberish, isPremiumNormalized: boolean, isOrderbook: boolean ], [ bigint ], "view">; getFunction(nameOrSignature: "ticks"): TypedContractMethod<[ ], [ IPoolInternal.TickWithRatesStructOutput[] ], "view">; getFunction(nameOrSignature: "tokensByAccount"): TypedContractMethod<[account: AddressLike], [bigint[]], "view">; getFunction(nameOrSignature: "totalHolders"): TypedContractMethod<[id: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "totalSupply"): TypedContractMethod<[id: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "trade"): TypedContractMethod<[ size: BigNumberish, isBuy: boolean, premiumLimit: BigNumberish, referrer: AddressLike ], [ [ bigint, Position.DeltaStructOutput ] & { totalPremium: bigint; delta: Position.DeltaStructOutput; } ], "nonpayable">; getFunction(nameOrSignature: "transferPosition"): TypedContractMethod<[ srcP: Position.KeyStruct, newOwner: AddressLike, newOperator: AddressLike, size: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "tryCacheSettlementPrice"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "withdraw"): TypedContractMethod<[ p: Position.KeyStruct, size: BigNumberish, minMarketPrice: BigNumberish, maxMarketPrice: BigNumberish ], [ Position.DeltaStructOutput ], "nonpayable">; getFunction(nameOrSignature: "writeFrom"): TypedContractMethod<[ underwriter: AddressLike, longReceiver: AddressLike, size: BigNumberish, referrer: AddressLike ], [ void ], "nonpayable">; getEvent(key: "Annihilate"): TypedContractEvent; getEvent(key: "ApprovalForAll"): TypedContractEvent; getEvent(key: "CancelQuoteOB"): TypedContractEvent; getEvent(key: "ClaimFees"): TypedContractEvent; getEvent(key: "ClaimProtocolFees"): TypedContractEvent; getEvent(key: "Deposit"): TypedContractEvent; getEvent(key: "Exercise"): TypedContractEvent; getEvent(key: "FillQuoteOB"): TypedContractEvent; getEvent(key: "FlashLoan"): TypedContractEvent; getEvent(key: "Settle"): TypedContractEvent; getEvent(key: "SettlePosition"): TypedContractEvent; getEvent(key: "SettlementPriceCached"): TypedContractEvent; getEvent(key: "Trade"): TypedContractEvent; getEvent(key: "TransferBatch"): TypedContractEvent; getEvent(key: "TransferPosition"): TypedContractEvent; getEvent(key: "TransferSingle"): TypedContractEvent; getEvent(key: "UpdateTick"): TypedContractEvent; getEvent(key: "Withdrawal"): TypedContractEvent; getEvent(key: "WriteFrom"): TypedContractEvent; filters: { "Annihilate(address,uint256,uint256)": TypedContractEvent; Annihilate: TypedContractEvent; "ApprovalForAll(address,address,bool)": TypedContractEvent; ApprovalForAll: TypedContractEvent; "CancelQuoteOB(address,bytes32)": TypedContractEvent; CancelQuoteOB: TypedContractEvent; "ClaimFees(address,uint256,uint256,int256)": TypedContractEvent; ClaimFees: TypedContractEvent; "ClaimProtocolFees(address,uint256)": TypedContractEvent; ClaimProtocolFees: TypedContractEvent; "Deposit(address,uint256,uint256,uint256,uint256,uint256,int256,uint256,uint256,uint256,uint256)": TypedContractEvent; Deposit: TypedContractEvent; "Exercise(address,address,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent; Exercise: TypedContractEvent; "FillQuoteOB(bytes32,address,address,uint256,tuple,tuple,uint256,uint256,uint256,bool)": TypedContractEvent; FillQuoteOB: TypedContractEvent; "FlashLoan(address,address,uint256,uint256)": TypedContractEvent; FlashLoan: TypedContractEvent; "Settle(address,address,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent; Settle: TypedContractEvent; "SettlePosition(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent; SettlePosition: TypedContractEvent; "SettlementPriceCached(uint256)": TypedContractEvent; SettlementPriceCached: TypedContractEvent; "Trade(address,uint256,tuple,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)": TypedContractEvent; Trade: TypedContractEvent; "TransferBatch(address,address,address,uint256[],uint256[])": TypedContractEvent; TransferBatch: TypedContractEvent; "TransferPosition(address,address,uint256,uint256,uint256)": TypedContractEvent; TransferPosition: TypedContractEvent; "TransferSingle(address,address,address,uint256,uint256)": TypedContractEvent; TransferSingle: TypedContractEvent; "UpdateTick(uint256,uint256,uint256,int256,uint256,int256,int256,uint256)": TypedContractEvent; UpdateTick: TypedContractEvent; "Withdrawal(address,uint256,uint256,uint256,uint256,uint256,int256,uint256,uint256,uint256,uint256)": TypedContractEvent; Withdrawal: TypedContractEvent; "WriteFrom(address,address,address,uint256,uint256,uint256)": TypedContractEvent; WriteFrom: TypedContractEvent; }; }