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 IPerpetualOrder {
    type OrderStruct = {
        leverageTDR: BigNumberish;
        brokerFeeTbps: BigNumberish;
        iPerpetualId: BigNumberish;
        traderAddr: AddressLike;
        executionTimestamp: BigNumberish;
        brokerAddr: AddressLike;
        submittedTimestamp: BigNumberish;
        flags: BigNumberish;
        iDeadline: BigNumberish;
        executorAddr: AddressLike;
        fAmount: BigNumberish;
        fLimitPrice: BigNumberish;
        fTriggerPrice: BigNumberish;
        brokerSignature: BytesLike;
    };
    type OrderStructOutput = [
        leverageTDR: bigint,
        brokerFeeTbps: bigint,
        iPerpetualId: bigint,
        traderAddr: string,
        executionTimestamp: bigint,
        brokerAddr: string,
        submittedTimestamp: bigint,
        flags: bigint,
        iDeadline: bigint,
        executorAddr: string,
        fAmount: bigint,
        fLimitPrice: bigint,
        fTriggerPrice: bigint,
        brokerSignature: string
    ] & {
        leverageTDR: bigint;
        brokerFeeTbps: bigint;
        iPerpetualId: bigint;
        traderAddr: string;
        executionTimestamp: bigint;
        brokerAddr: string;
        submittedTimestamp: bigint;
        flags: bigint;
        iDeadline: bigint;
        executorAddr: string;
        fAmount: bigint;
        fLimitPrice: bigint;
        fTriggerPrice: bigint;
        brokerSignature: string;
    };
}
export declare namespace AMMPerpLogic {
    type AMMVariablesStruct = {
        fLockedValue1: BigNumberish;
        fPoolM1: BigNumberish;
        fPoolM2: BigNumberish;
        fPoolM3: BigNumberish;
        fAMM_K2: BigNumberish;
        fCurrentTraderExposureEMA: BigNumberish;
    };
    type AMMVariablesStructOutput = [
        fLockedValue1: bigint,
        fPoolM1: bigint,
        fPoolM2: bigint,
        fPoolM3: bigint,
        fAMM_K2: bigint,
        fCurrentTraderExposureEMA: bigint
    ] & {
        fLockedValue1: bigint;
        fPoolM1: bigint;
        fPoolM2: bigint;
        fPoolM3: bigint;
        fAMM_K2: bigint;
        fCurrentTraderExposureEMA: bigint;
    };
    type MarketVariablesStruct = {
        fIndexPriceS2: BigNumberish;
        fIndexPriceS3: BigNumberish;
        fSigma2: BigNumberish;
        fSigma3: BigNumberish;
        fRho23: BigNumberish;
    };
    type MarketVariablesStructOutput = [
        fIndexPriceS2: bigint,
        fIndexPriceS3: bigint,
        fSigma2: bigint,
        fSigma3: bigint,
        fRho23: bigint
    ] & {
        fIndexPriceS2: bigint;
        fIndexPriceS3: bigint;
        fSigma2: bigint;
        fSigma3: bigint;
        fRho23: bigint;
    };
}
export declare namespace PerpStorage {
    type LiquidityPoolDataStruct = {
        isRunning: boolean;
        iPerpetualCount: BigNumberish;
        id: BigNumberish;
        fCeilPnLShare: BigNumberish;
        marginTokenDecimals: BigNumberish;
        iTargetPoolSizeUpdateTime: BigNumberish;
        marginTokenAddress: AddressLike;
        prevAnchor: BigNumberish;
        fRedemptionRate: BigNumberish;
        shareTokenAddress: AddressLike;
        fPnLparticipantsCashCC: BigNumberish;
        fTargetAMMFundSize: BigNumberish;
        fDefaultFundCashCC: BigNumberish;
        fTargetDFSize: BigNumberish;
        fBrokerCollateralLotSize: BigNumberish;
        prevTokenAmount: BigNumberish;
        nextTokenAmount: BigNumberish;
        totalSupplyShareToken: BigNumberish;
        fBrokerFundCashCC: BigNumberish;
    };
    type LiquidityPoolDataStructOutput = [
        isRunning: boolean,
        iPerpetualCount: bigint,
        id: bigint,
        fCeilPnLShare: bigint,
        marginTokenDecimals: bigint,
        iTargetPoolSizeUpdateTime: bigint,
        marginTokenAddress: string,
        prevAnchor: bigint,
        fRedemptionRate: bigint,
        shareTokenAddress: string,
        fPnLparticipantsCashCC: bigint,
        fTargetAMMFundSize: bigint,
        fDefaultFundCashCC: bigint,
        fTargetDFSize: bigint,
        fBrokerCollateralLotSize: bigint,
        prevTokenAmount: bigint,
        nextTokenAmount: bigint,
        totalSupplyShareToken: bigint,
        fBrokerFundCashCC: bigint
    ] & {
        isRunning: boolean;
        iPerpetualCount: bigint;
        id: bigint;
        fCeilPnLShare: bigint;
        marginTokenDecimals: bigint;
        iTargetPoolSizeUpdateTime: bigint;
        marginTokenAddress: string;
        prevAnchor: bigint;
        fRedemptionRate: bigint;
        shareTokenAddress: string;
        fPnLparticipantsCashCC: bigint;
        fTargetAMMFundSize: bigint;
        fDefaultFundCashCC: bigint;
        fTargetDFSize: bigint;
        fBrokerCollateralLotSize: bigint;
        prevTokenAmount: bigint;
        nextTokenAmount: bigint;
        totalSupplyShareToken: bigint;
        fBrokerFundCashCC: bigint;
    };
    type MarginAccountStruct = {
        fLockedInValueQC: BigNumberish;
        fCashCC: BigNumberish;
        fPositionBC: BigNumberish;
        fUnitAccumulatedFundingStart: BigNumberish;
    };
    type MarginAccountStructOutput = [
        fLockedInValueQC: bigint,
        fCashCC: bigint,
        fPositionBC: bigint,
        fUnitAccumulatedFundingStart: bigint
    ] & {
        fLockedInValueQC: bigint;
        fCashCC: bigint;
        fPositionBC: bigint;
        fUnitAccumulatedFundingStart: bigint;
    };
    type PriceTimeDataStruct = {
        fPrice: BigNumberish;
        time: BigNumberish;
    };
    type PriceTimeDataStructOutput = [fPrice: bigint, time: bigint] & {
        fPrice: bigint;
        time: bigint;
    };
    type PerpetualDataStruct = {
        poolId: BigNumberish;
        id: BigNumberish;
        fInitialMarginRate: BigNumberish;
        fSigma2: BigNumberish;
        iLastFundingTime: BigNumberish;
        fDFCoverNRate: BigNumberish;
        fMaintenanceMarginRate: BigNumberish;
        state: BigNumberish;
        eCollateralCurrency: BigNumberish;
        S2BaseCCY: BytesLike;
        S2QuoteCCY: BytesLike;
        incentiveSpreadTbps: BigNumberish;
        minimalSpreadBps: BigNumberish;
        S3BaseCCY: BytesLike;
        S3QuoteCCY: BytesLike;
        fSigma3: BigNumberish;
        fRho23: BigNumberish;
        liquidationPenaltyRateTbps: BigNumberish;
        currentMarkPremiumRate: PerpStorage.PriceTimeDataStruct;
        premiumRatesEMA: BigNumberish;
        fUnitAccumulatedFunding: BigNumberish;
        fOpenInterest: BigNumberish;
        fTargetAMMFundSize: BigNumberish;
        fCurrentTraderExposureEMA: BigNumberish;
        fCurrentFundingRate: BigNumberish;
        fLotSizeBC: BigNumberish;
        fReferralRebateCC: BigNumberish;
        fTargetDFSize: BigNumberish;
        fkStar: BigNumberish;
        fAMMTargetDD: BigNumberish;
        perpFlags: BigNumberish;
        fMinimalTraderExposureEMA: BigNumberish;
        fMinimalAMMExposureEMA: BigNumberish;
        fSettlementS3PriceData: BigNumberish;
        fSettlementS2PriceData: BigNumberish;
        fTotalMarginBalance: BigNumberish;
        fMarkPriceEMALambda: BigNumberish;
        fFundingRateClamp: BigNumberish;
        fMaximalTradeSizeBumpUp: BigNumberish;
        iLastTargetPoolSizeTime: BigNumberish;
        fStressReturnS3: [BigNumberish, BigNumberish];
        fDFLambda: [BigNumberish, BigNumberish];
        fCurrentAMMExposureEMA: [BigNumberish, BigNumberish];
        fStressReturnS2: [BigNumberish, BigNumberish];
    };
    type PerpetualDataStructOutput = [
        poolId: bigint,
        id: bigint,
        fInitialMarginRate: bigint,
        fSigma2: bigint,
        iLastFundingTime: bigint,
        fDFCoverNRate: bigint,
        fMaintenanceMarginRate: bigint,
        state: bigint,
        eCollateralCurrency: bigint,
        S2BaseCCY: string,
        S2QuoteCCY: string,
        incentiveSpreadTbps: bigint,
        minimalSpreadBps: bigint,
        S3BaseCCY: string,
        S3QuoteCCY: string,
        fSigma3: bigint,
        fRho23: bigint,
        liquidationPenaltyRateTbps: bigint,
        currentMarkPremiumRate: PerpStorage.PriceTimeDataStructOutput,
        premiumRatesEMA: bigint,
        fUnitAccumulatedFunding: bigint,
        fOpenInterest: bigint,
        fTargetAMMFundSize: bigint,
        fCurrentTraderExposureEMA: bigint,
        fCurrentFundingRate: bigint,
        fLotSizeBC: bigint,
        fReferralRebateCC: bigint,
        fTargetDFSize: bigint,
        fkStar: bigint,
        fAMMTargetDD: bigint,
        perpFlags: bigint,
        fMinimalTraderExposureEMA: bigint,
        fMinimalAMMExposureEMA: bigint,
        fSettlementS3PriceData: bigint,
        fSettlementS2PriceData: bigint,
        fTotalMarginBalance: bigint,
        fMarkPriceEMALambda: bigint,
        fFundingRateClamp: bigint,
        fMaximalTradeSizeBumpUp: bigint,
        iLastTargetPoolSizeTime: bigint,
        fStressReturnS3: [bigint, bigint],
        fDFLambda: [bigint, bigint],
        fCurrentAMMExposureEMA: [bigint, bigint],
        fStressReturnS2: [bigint, bigint]
    ] & {
        poolId: bigint;
        id: bigint;
        fInitialMarginRate: bigint;
        fSigma2: bigint;
        iLastFundingTime: bigint;
        fDFCoverNRate: bigint;
        fMaintenanceMarginRate: bigint;
        state: bigint;
        eCollateralCurrency: bigint;
        S2BaseCCY: string;
        S2QuoteCCY: string;
        incentiveSpreadTbps: bigint;
        minimalSpreadBps: bigint;
        S3BaseCCY: string;
        S3QuoteCCY: string;
        fSigma3: bigint;
        fRho23: bigint;
        liquidationPenaltyRateTbps: bigint;
        currentMarkPremiumRate: PerpStorage.PriceTimeDataStructOutput;
        premiumRatesEMA: bigint;
        fUnitAccumulatedFunding: bigint;
        fOpenInterest: bigint;
        fTargetAMMFundSize: bigint;
        fCurrentTraderExposureEMA: bigint;
        fCurrentFundingRate: bigint;
        fLotSizeBC: bigint;
        fReferralRebateCC: bigint;
        fTargetDFSize: bigint;
        fkStar: bigint;
        fAMMTargetDD: bigint;
        perpFlags: bigint;
        fMinimalTraderExposureEMA: bigint;
        fMinimalAMMExposureEMA: bigint;
        fSettlementS3PriceData: bigint;
        fSettlementS2PriceData: bigint;
        fTotalMarginBalance: bigint;
        fMarkPriceEMALambda: bigint;
        fFundingRateClamp: bigint;
        fMaximalTradeSizeBumpUp: bigint;
        iLastTargetPoolSizeTime: bigint;
        fStressReturnS3: [bigint, bigint];
        fDFLambda: [bigint, bigint];
        fCurrentAMMExposureEMA: [bigint, bigint];
        fStressReturnS2: [bigint, bigint];
    };
    type WithdrawRequestStruct = {
        lp: AddressLike;
        shareTokens: BigNumberish;
        withdrawTimestamp: BigNumberish;
    };
    type WithdrawRequestStructOutput = [
        lp: string,
        shareTokens: bigint,
        withdrawTimestamp: bigint
    ] & {
        lp: string;
        shareTokens: bigint;
        withdrawTimestamp: bigint;
    };
}
export declare namespace IPerpetualInfo {
    type PerpetualStaticInfoStruct = {
        id: BigNumberish;
        limitOrderBookAddr: AddressLike;
        fInitialMarginRate: BigNumberish;
        fMaintenanceMarginRate: BigNumberish;
        perpetualState: BigNumberish;
        collCurrencyType: BigNumberish;
        S2BaseCCY: BytesLike;
        S2QuoteCCY: BytesLike;
        S3BaseCCY: BytesLike;
        S3QuoteCCY: BytesLike;
        fLotSizeBC: BigNumberish;
        fReferralRebateCC: BigNumberish;
        priceIds: BytesLike[];
        isPyth: boolean[];
        perpFlags: BigNumberish;
    };
    type PerpetualStaticInfoStructOutput = [
        id: bigint,
        limitOrderBookAddr: string,
        fInitialMarginRate: bigint,
        fMaintenanceMarginRate: bigint,
        perpetualState: bigint,
        collCurrencyType: bigint,
        S2BaseCCY: string,
        S2QuoteCCY: string,
        S3BaseCCY: string,
        S3QuoteCCY: string,
        fLotSizeBC: bigint,
        fReferralRebateCC: bigint,
        priceIds: string[],
        isPyth: boolean[],
        perpFlags: bigint
    ] & {
        id: bigint;
        limitOrderBookAddr: string;
        fInitialMarginRate: bigint;
        fMaintenanceMarginRate: bigint;
        perpetualState: bigint;
        collCurrencyType: bigint;
        S2BaseCCY: string;
        S2QuoteCCY: string;
        S3BaseCCY: string;
        S3QuoteCCY: string;
        fLotSizeBC: bigint;
        fReferralRebateCC: bigint;
        priceIds: string[];
        isPyth: boolean[];
        perpFlags: bigint;
    };
}
export interface IPerpetualManagerInterface extends Interface {
    getFunction(nameOrSignature: "activatePerpetual" | "addLiquidity" | "adjustSettlementPrice" | "calculateDefaultFundSize" | "calculatePerpetualPrice" | "calculateRiskNeutralPD" | "clearTradersInPool" | "countActivePerpAccounts" | "createLiquidityPool" | "createPerpetual" | "deactivatePerp" | "decodeUint16Float" | "decreasePoolCash" | "deposit" | "depositBrokerLots" | "depositMarginForOpeningTrade" | "depositToDefaultFund" | "determineExchangeFee" | "distributeFees" | "distributeFeesLiquidation" | "entropy" | "executeCancelOrder" | "executeLiquidityWithdrawal" | "executeTrade" | "getAMMPerpLogic" | "getAMMState" | "getActivePerpAccounts" | "getActivePerpAccountsByChunks" | "getBrokerDesignation" | "getBrokerInducedFee" | "getCollateralTokenAmountForPricing" | "getCurrentBrokerVolume" | "getCurrentTraderVolume" | "getDepositAmountForLvgPosition" | "getExchangeFeePrdMkts" | "getFeeForBrokerDesignation" | "getFeeForBrokerStake" | "getFeeForBrokerVolume" | "getFeeForTraderStake" | "getFeeForTraderVolume" | "getLastPerpetualBaseToUSDConversion" | "getLiquidatableAccounts" | "getLiquidityPool" | "getLiquidityPools" | "getMarginAccount" | "getMarginAccounts" | "getMaxSignedOpenTradeSizeForPos" | "getNextLiquidatableTrader" | "getOracleFactory" | "getOraclePrice" | "getOracleUpdateTime" | "getOrderBookAddress" | "getOrderBookFactoryAddress" | "getPerpetual" | "getPerpetualCountInPool" | "getPerpetualId" | "getPerpetualStaticInfo" | "getPerpetuals" | "getPoolCount" | "getPoolIdByPerpetualId" | "getPoolStaticInfo" | "getPriceInfo" | "getSettleableAccounts" | "getShareTokenFactory" | "getShareTokenPriceD18" | "getTargetCollateralM1" | "getTargetCollateralM2" | "getTargetCollateralM3" | "getTokenAmountToReturn" | "getTraderState" | "getTreasuryAddress" | "getWithdrawRequests" | "increasePoolCash" | "isActiveAccount" | "isDelegate" | "isMarketClosed" | "isOrderCanceled" | "isOrderExecuted" | "isPerpMarketClosed" | "liquidateByAMM" | "pauseLiquidityProvision" | "prdMktsLvgFee" | "preTrade" | "priceImpact" | "queryExchangeFee" | "queryMidPrices" | "queryPerpetualPrice" | "rebalance" | "reduceMarginCollateral" | "resetMarkPremium" | "runLiquidityPool" | "setAMMPerpLogic" | "setBlockDelay" | "setBrokerTiers" | "setBrokerVolumeTiers" | "setDelegate" | "setEmergencyState" | "setFeesForDesignation" | "setInitialVolumeForFee" | "setNormalState" | "setOracleFactory" | "setOracleFactoryForPerpetual" | "setOrderBookFactory" | "setPerpetualBaseParams" | "setPerpetualOracles" | "setPerpetualParam" | "setPerpetualParamPair" | "setPerpetualPoolFactory" | "setPerpetualRiskParams" | "setPoolParam" | "setTraderTiers" | "setTraderVolumeTiers" | "setTreasury" | "setUtilityTokenAddr" | "settle" | "settleNextTraderInPool" | "settleTraders" | "splitProtocolFee" | "togglePerpEmergencyState" | "tradeViaOrderBook" | "transferBrokerLots" | "transferBrokerOwnership" | "transferEarningsToTreasury" | "transferValueToTreasury" | "updateAMMTargetFundSize" | "updateDefaultFundTargetSize" | "updateDefaultFundTargetSizeRandom" | "updateFundingAndPricesAfter" | "updateFundingAndPricesBefore" | "updatePriceFeeds" | "updateVolumeEMAOnNewTrade" | "validateStopPrice" | "withdraw" | "withdrawAll" | "withdrawDepositFromMarginAccount" | "withdrawFromDefaultFund" | "withdrawLiquidity"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "BrokerLotsTransferred" | "BrokerVolumeTransferred" | "Clear" | "DistributeFees" | "Liquidate" | "LiquidityAdded" | "LiquidityPoolCreated" | "LiquidityProvisionPaused" | "LiquidityRemoved" | "LiquidityWithdrawalInitiated" | "PerpetualCreated" | "PerpetualLimitOrderCancelled" | "RunLiquidityPool" | "SetBlockDelay" | "SetBrokerDesignations" | "SetBrokerTiers" | "SetBrokerVolumeTiers" | "SetClearedState" | "SetDelegate" | "SetEmergencyState" | "SetNormalState" | "SetOracles" | "SetParameter" | "SetParameterPair" | "SetPerpetualBaseParameters" | "SetPerpetualRiskParameters" | "SetPoolParameter" | "SetTraderTiers" | "SetTraderVolumeTiers" | "SetUtilityToken" | "Settle" | "SettleState" | "SettlementComplete" | "TokensDeposited" | "TokensWithdrawn" | "Trade" | "TransferAddressTo" | "UpdateBrokerAddedCash" | "UpdateFundingRate" | "UpdateMarginAccount" | "UpdateMarkPrice"): EventFragment;
    encodeFunctionData(functionFragment: "activatePerpetual", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "addLiquidity", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "adjustSettlementPrice", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "calculateDefaultFundSize", values: [
        [
            BigNumberish,
            BigNumberish
        ],
        BigNumberish,
        BigNumberish,
        [
            BigNumberish,
            BigNumberish
        ],
        [
            BigNumberish,
            BigNumberish
        ],
        [
            BigNumberish,
            BigNumberish
        ],
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "calculatePerpetualPrice", values: [
        AMMPerpLogic.AMMVariablesStruct,
        AMMPerpLogic.MarketVariablesStruct,
        BigNumberish,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "calculateRiskNeutralPD", values: [
        AMMPerpLogic.AMMVariablesStruct,
        AMMPerpLogic.MarketVariablesStruct,
        BigNumberish,
        boolean
    ]): string;
    encodeFunctionData(functionFragment: "clearTradersInPool", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "countActivePerpAccounts", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "createLiquidityPool", values: [AddressLike, BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "createPerpetual", values: [
        BigNumberish,
        [
            BytesLike,
            BytesLike
        ],
        [
            BytesLike,
            BytesLike
        ],
        BigNumberish[],
        [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        BigNumberish[],
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "deactivatePerp", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "decodeUint16Float", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "decreasePoolCash", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "deposit", values: [
        BigNumberish,
        AddressLike,
        BigNumberish,
        BytesLike[],
        BigNumberish[]
    ]): string;
    encodeFunctionData(functionFragment: "depositBrokerLots", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "depositMarginForOpeningTrade", values: [BigNumberish, BigNumberish, IPerpetualOrder.OrderStruct]): string;
    encodeFunctionData(functionFragment: "depositToDefaultFund", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "determineExchangeFee", values: [IPerpetualOrder.OrderStruct]): string;
    encodeFunctionData(functionFragment: "distributeFees", values: [IPerpetualOrder.OrderStruct, BigNumberish, BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "distributeFeesLiquidation", values: [BigNumberish, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "entropy", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "executeCancelOrder", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "executeLiquidityWithdrawal", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "executeTrade", values: [
        BigNumberish,
        AddressLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        boolean
    ]): string;
    encodeFunctionData(functionFragment: "getAMMPerpLogic", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAMMState", values: [BigNumberish, [BigNumberish, BigNumberish]]): string;
    encodeFunctionData(functionFragment: "getActivePerpAccounts", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getActivePerpAccountsByChunks", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getBrokerDesignation", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getBrokerInducedFee", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getCollateralTokenAmountForPricing", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getCurrentBrokerVolume", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getCurrentTraderVolume", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getDepositAmountForLvgPosition", values: [
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "getExchangeFeePrdMkts", values: [BigNumberish, BigNumberish, BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getFeeForBrokerDesignation", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getFeeForBrokerStake", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getFeeForBrokerVolume", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getFeeForTraderStake", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getFeeForTraderVolume", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getLastPerpetualBaseToUSDConversion", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getLiquidatableAccounts", values: [BigNumberish, [BigNumberish, BigNumberish]]): string;
    encodeFunctionData(functionFragment: "getLiquidityPool", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getLiquidityPools", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getMarginAccount", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "getMarginAccounts", values: [BigNumberish[], AddressLike]): string;
    encodeFunctionData(functionFragment: "getMaxSignedOpenTradeSizeForPos", values: [BigNumberish, BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "getNextLiquidatableTrader", values: [BigNumberish, [BigNumberish, BigNumberish]]): string;
    encodeFunctionData(functionFragment: "getOracleFactory", values?: undefined): string;
    encodeFunctionData(functionFragment: "getOraclePrice", values: [[BytesLike, BytesLike]]): string;
    encodeFunctionData(functionFragment: "getOracleUpdateTime", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getOrderBookAddress", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getOrderBookFactoryAddress", values?: undefined): string;
    encodeFunctionData(functionFragment: "getPerpetual", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getPerpetualCountInPool", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getPerpetualId", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getPerpetualStaticInfo", values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "getPerpetuals", values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "getPoolCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "getPoolIdByPerpetualId", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getPoolStaticInfo", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getPriceInfo", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getSettleableAccounts", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getShareTokenFactory", values?: undefined): string;
    encodeFunctionData(functionFragment: "getShareTokenPriceD18", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getTargetCollateralM1", values: [
        BigNumberish,
        BigNumberish,
        AMMPerpLogic.MarketVariablesStruct,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "getTargetCollateralM2", values: [
        BigNumberish,
        BigNumberish,
        AMMPerpLogic.MarketVariablesStruct,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "getTargetCollateralM3", values: [
        BigNumberish,
        BigNumberish,
        AMMPerpLogic.MarketVariablesStruct,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "getTokenAmountToReturn", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getTraderState", values: [BigNumberish, AddressLike, [BigNumberish, BigNumberish]]): string;
    encodeFunctionData(functionFragment: "getTreasuryAddress", values?: undefined): string;
    encodeFunctionData(functionFragment: "getWithdrawRequests", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "increasePoolCash", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "isActiveAccount", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "isDelegate", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "isMarketClosed", values: [BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "isOrderCanceled", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "isOrderExecuted", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "isPerpMarketClosed", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "liquidateByAMM", values: [
        BigNumberish,
        AddressLike,
        AddressLike,
        BytesLike[],
        BigNumberish[]
    ]): string;
    encodeFunctionData(functionFragment: "pauseLiquidityProvision", values: [BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "prdMktsLvgFee", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "preTrade", values: [IPerpetualOrder.OrderStruct]): string;
    encodeFunctionData(functionFragment: "priceImpact", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "queryExchangeFee", values: [BigNumberish, AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "queryMidPrices", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "queryPerpetualPrice", values: [
        BigNumberish,
        BigNumberish,
        [
            BigNumberish,
            BigNumberish
        ],
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "rebalance", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "reduceMarginCollateral", values: [BigNumberish, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "resetMarkPremium", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "runLiquidityPool", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setAMMPerpLogic", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setBlockDelay", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setBrokerTiers", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "setBrokerVolumeTiers", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "setDelegate", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setEmergencyState", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setFeesForDesignation", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "setInitialVolumeForFee", values: [BigNumberish, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setNormalState", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "setOracleFactory", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setOracleFactoryForPerpetual", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "setOrderBookFactory", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setPerpetualBaseParams", values: [BigNumberish, BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "setPerpetualOracles", values: [BigNumberish, [BytesLike, BytesLike], [BytesLike, BytesLike]]): string;
    encodeFunctionData(functionFragment: "setPerpetualParam", values: [BigNumberish, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setPerpetualParamPair", values: [BigNumberish, string, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setPerpetualPoolFactory", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setPerpetualRiskParams", values: [
        BigNumberish,
        [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        BigNumberish[]
    ]): string;
    encodeFunctionData(functionFragment: "setPoolParam", values: [BigNumberish, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setTraderTiers", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "setTraderVolumeTiers", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "setTreasury", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setUtilityTokenAddr", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "settle", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "settleNextTraderInPool", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "settleTraders", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "splitProtocolFee", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "togglePerpEmergencyState", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "tradeViaOrderBook", values: [IPerpetualOrder.OrderStruct, AddressLike]): string;
    encodeFunctionData(functionFragment: "transferBrokerLots", values: [BigNumberish, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferBrokerOwnership", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "transferEarningsToTreasury", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferValueToTreasury", values?: undefined): string;
    encodeFunctionData(functionFragment: "updateAMMTargetFundSize", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateDefaultFundTargetSize", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateDefaultFundTargetSizeRandom", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateFundingAndPricesAfter", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateFundingAndPricesBefore", values: [BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "updatePriceFeeds", values: [BigNumberish, BytesLike[], BigNumberish[], BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateVolumeEMAOnNewTrade", values: [BigNumberish, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "validateStopPrice", values: [boolean, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdraw", values: [
        BigNumberish,
        AddressLike,
        BigNumberish,
        BytesLike[],
        BigNumberish[]
    ]): string;
    encodeFunctionData(functionFragment: "withdrawAll", values: [BigNumberish, AddressLike, BytesLike[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "withdrawDepositFromMarginAccount", values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: "withdrawFromDefaultFund", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdrawLiquidity", values: [BigNumberish, BigNumberish]): string;
    decodeFunctionResult(functionFragment: "activatePerpetual", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "adjustSettlementPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculateDefaultFundSize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculatePerpetualPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calculateRiskNeutralPD", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "clearTradersInPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "countActivePerpAccounts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createLiquidityPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createPerpetual", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deactivatePerp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decodeUint16Float", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decreasePoolCash", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositBrokerLots", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositMarginForOpeningTrade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositToDefaultFund", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "determineExchangeFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "distributeFees", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "distributeFeesLiquidation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "entropy", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeCancelOrder", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeLiquidityWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeTrade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAMMPerpLogic", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAMMState", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getActivePerpAccounts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getActivePerpAccountsByChunks", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getBrokerDesignation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getBrokerInducedFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCollateralTokenAmountForPricing", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCurrentBrokerVolume", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCurrentTraderVolume", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getDepositAmountForLvgPosition", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getExchangeFeePrdMkts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFeeForBrokerDesignation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFeeForBrokerStake", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFeeForBrokerVolume", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFeeForTraderStake", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getFeeForTraderVolume", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLastPerpetualBaseToUSDConversion", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLiquidatableAccounts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLiquidityPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLiquidityPools", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMarginAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMarginAccounts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMaxSignedOpenTradeSizeForPos", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getNextLiquidatableTrader", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOracleFactory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOraclePrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOracleUpdateTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOrderBookAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOrderBookFactoryAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPerpetual", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPerpetualCountInPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPerpetualId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPerpetualStaticInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPerpetuals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPoolCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPoolIdByPerpetualId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPoolStaticInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPriceInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getSettleableAccounts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getShareTokenFactory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getShareTokenPriceD18", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTargetCollateralM1", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTargetCollateralM2", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTargetCollateralM3", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTokenAmountToReturn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTraderState", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTreasuryAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWithdrawRequests", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increasePoolCash", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isActiveAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isDelegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isMarketClosed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isOrderCanceled", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isOrderExecuted", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isPerpMarketClosed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidateByAMM", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pauseLiquidityProvision", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "prdMktsLvgFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "preTrade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "priceImpact", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "queryExchangeFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "queryMidPrices", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "queryPerpetualPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rebalance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "reduceMarginCollateral", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "resetMarkPremium", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "runLiquidityPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAMMPerpLogic", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setBlockDelay", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setBrokerTiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setBrokerVolumeTiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setDelegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setEmergencyState", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setFeesForDesignation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setInitialVolumeForFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setNormalState", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setOracleFactory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setOracleFactoryForPerpetual", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setOrderBookFactory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPerpetualBaseParams", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPerpetualOracles", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPerpetualParam", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPerpetualParamPair", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPerpetualPoolFactory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPerpetualRiskParams", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPoolParam", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTraderTiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTraderVolumeTiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTreasury", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setUtilityTokenAddr", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "settle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "settleNextTraderInPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "settleTraders", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "splitProtocolFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "togglePerpEmergencyState", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tradeViaOrderBook", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferBrokerLots", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferBrokerOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferEarningsToTreasury", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferValueToTreasury", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateAMMTargetFundSize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateDefaultFundTargetSize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateDefaultFundTargetSizeRandom", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateFundingAndPricesAfter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateFundingAndPricesBefore", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePriceFeeds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateVolumeEMAOnNewTrade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "validateStopPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawAll", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawDepositFromMarginAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawFromDefaultFund", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawLiquidity", data: BytesLike): Result;
}
export declare namespace BrokerLotsTransferredEvent {
    type InputTuple = [
        poolId: BigNumberish,
        oldOwner: AddressLike,
        newOwner: AddressLike,
        numLots: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        oldOwner: string,
        newOwner: string,
        numLots: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        oldOwner: string;
        newOwner: string;
        numLots: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace BrokerVolumeTransferredEvent {
    type InputTuple = [
        poolId: BigNumberish,
        oldOwner: AddressLike,
        newOwner: AddressLike,
        fVolume: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        oldOwner: string,
        newOwner: string,
        fVolume: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        oldOwner: string;
        newOwner: string;
        fVolume: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ClearEvent {
    type InputTuple = [perpetualId: BigNumberish, trader: AddressLike];
    type OutputTuple = [perpetualId: bigint, trader: string];
    interface OutputObject {
        perpetualId: bigint;
        trader: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DistributeFeesEvent {
    type InputTuple = [
        poolId: BigNumberish,
        perpetualId: BigNumberish,
        trader: AddressLike,
        protocolFeeCC: BigNumberish,
        participationFundFeeCC: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        perpetualId: bigint,
        trader: string,
        protocolFeeCC: bigint,
        participationFundFeeCC: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        perpetualId: bigint;
        trader: string;
        protocolFeeCC: bigint;
        participationFundFeeCC: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidateEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        liquidator: AddressLike,
        trader: AddressLike,
        amountLiquidatedBC: BigNumberish,
        liquidationPrice: BigNumberish,
        newPositionSizeBC: BigNumberish,
        fFeeCC: BigNumberish,
        fPnlCC: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        liquidator: string,
        trader: string,
        amountLiquidatedBC: bigint,
        liquidationPrice: bigint,
        newPositionSizeBC: bigint,
        fFeeCC: bigint,
        fPnlCC: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        liquidator: string;
        trader: string;
        amountLiquidatedBC: bigint;
        liquidationPrice: bigint;
        newPositionSizeBC: bigint;
        fFeeCC: bigint;
        fPnlCC: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidityAddedEvent {
    type InputTuple = [
        poolId: BigNumberish,
        user: AddressLike,
        tokenAmount: BigNumberish,
        shareAmount: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        user: string,
        tokenAmount: bigint,
        shareAmount: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        user: string;
        tokenAmount: bigint;
        shareAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidityPoolCreatedEvent {
    type InputTuple = [
        id: BigNumberish,
        marginTokenAddress: AddressLike,
        shareTokenAddress: AddressLike,
        iTargetPoolSizeUpdateTime: BigNumberish,
        fBrokerCollateralLotSize: BigNumberish
    ];
    type OutputTuple = [
        id: bigint,
        marginTokenAddress: string,
        shareTokenAddress: string,
        iTargetPoolSizeUpdateTime: bigint,
        fBrokerCollateralLotSize: bigint
    ];
    interface OutputObject {
        id: bigint;
        marginTokenAddress: string;
        shareTokenAddress: string;
        iTargetPoolSizeUpdateTime: bigint;
        fBrokerCollateralLotSize: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidityProvisionPausedEvent {
    type InputTuple = [pauseOn: boolean, poolId: BigNumberish];
    type OutputTuple = [pauseOn: boolean, poolId: bigint];
    interface OutputObject {
        pauseOn: boolean;
        poolId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidityRemovedEvent {
    type InputTuple = [
        poolId: BigNumberish,
        user: AddressLike,
        tokenAmount: BigNumberish,
        shareAmount: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        user: string,
        tokenAmount: bigint,
        shareAmount: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        user: string;
        tokenAmount: bigint;
        shareAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidityWithdrawalInitiatedEvent {
    type InputTuple = [
        poolId: BigNumberish,
        user: AddressLike,
        shareAmount: BigNumberish
    ];
    type OutputTuple = [poolId: bigint, user: string, shareAmount: bigint];
    interface OutputObject {
        poolId: bigint;
        user: string;
        shareAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PerpetualCreatedEvent {
    type InputTuple = [
        poolId: BigNumberish,
        id: BigNumberish,
        baseParams: BigNumberish[],
        underlyingRiskParams: [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        defaultFundRiskParams: BigNumberish[],
        eCollateralCurrency: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        id: bigint,
        baseParams: bigint[],
        underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint],
        defaultFundRiskParams: bigint[],
        eCollateralCurrency: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        id: bigint;
        baseParams: bigint[];
        underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint];
        defaultFundRiskParams: bigint[];
        eCollateralCurrency: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PerpetualLimitOrderCancelledEvent {
    type InputTuple = [perpetualId: BigNumberish, orderHash: BytesLike];
    type OutputTuple = [perpetualId: bigint, orderHash: string];
    interface OutputObject {
        perpetualId: bigint;
        orderHash: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RunLiquidityPoolEvent {
    type InputTuple = [_liqPoolID: BigNumberish];
    type OutputTuple = [_liqPoolID: bigint];
    interface OutputObject {
        _liqPoolID: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetBlockDelayEvent {
    type InputTuple = [delay: BigNumberish];
    type OutputTuple = [delay: bigint];
    interface OutputObject {
        delay: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetBrokerDesignationsEvent {
    type InputTuple = [designations: BigNumberish[], fees: BigNumberish[]];
    type OutputTuple = [designations: bigint[], fees: bigint[]];
    interface OutputObject {
        designations: bigint[];
        fees: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetBrokerTiersEvent {
    type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]];
    type OutputTuple = [tiers: bigint[], feesTbps: bigint[]];
    interface OutputObject {
        tiers: bigint[];
        feesTbps: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetBrokerVolumeTiersEvent {
    type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]];
    type OutputTuple = [tiers: bigint[], feesTbps: bigint[]];
    interface OutputObject {
        tiers: bigint[];
        feesTbps: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetClearedStateEvent {
    type InputTuple = [perpetualId: BigNumberish];
    type OutputTuple = [perpetualId: bigint];
    interface OutputObject {
        perpetualId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetDelegateEvent {
    type InputTuple = [
        trader: AddressLike,
        delegate: AddressLike,
        index: BigNumberish
    ];
    type OutputTuple = [trader: string, delegate: string, index: bigint];
    interface OutputObject {
        trader: string;
        delegate: string;
        index: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetEmergencyStateEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        fSettlementMarkPremiumRate: BigNumberish,
        fSettlementS2Price: BigNumberish,
        fSettlementS3Price: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        fSettlementMarkPremiumRate: bigint,
        fSettlementS2Price: bigint,
        fSettlementS3Price: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        fSettlementMarkPremiumRate: bigint;
        fSettlementS2Price: bigint;
        fSettlementS3Price: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetNormalStateEvent {
    type InputTuple = [perpetualId: BigNumberish];
    type OutputTuple = [perpetualId: bigint];
    interface OutputObject {
        perpetualId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetOraclesEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        baseQuoteS2: [BytesLike, BytesLike],
        baseQuoteS3: [BytesLike, BytesLike]
    ];
    type OutputTuple = [
        perpetualId: bigint,
        baseQuoteS2: [string, string],
        baseQuoteS3: [string, string]
    ];
    interface OutputObject {
        perpetualId: bigint;
        baseQuoteS2: [string, string];
        baseQuoteS3: [string, string];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetParameterEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        name: string,
        value: BigNumberish
    ];
    type OutputTuple = [perpetualId: bigint, name: string, value: bigint];
    interface OutputObject {
        perpetualId: bigint;
        name: string;
        value: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetParameterPairEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        name: string,
        value1: BigNumberish,
        value2: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        name: string,
        value1: bigint,
        value2: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        name: string;
        value1: bigint;
        value2: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetPerpetualBaseParametersEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        baseParams: BigNumberish[]
    ];
    type OutputTuple = [perpetualId: bigint, baseParams: bigint[]];
    interface OutputObject {
        perpetualId: bigint;
        baseParams: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetPerpetualRiskParametersEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        underlyingRiskParams: [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        defaultFundRiskParams: BigNumberish[]
    ];
    type OutputTuple = [
        perpetualId: bigint,
        underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint],
        defaultFundRiskParams: bigint[]
    ];
    interface OutputObject {
        perpetualId: bigint;
        underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint];
        defaultFundRiskParams: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetPoolParameterEvent {
    type InputTuple = [
        poolId: BigNumberish,
        name: string,
        value: BigNumberish
    ];
    type OutputTuple = [poolId: bigint, name: string, value: bigint];
    interface OutputObject {
        poolId: bigint;
        name: string;
        value: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetTraderTiersEvent {
    type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]];
    type OutputTuple = [tiers: bigint[], feesTbps: bigint[]];
    interface OutputObject {
        tiers: bigint[];
        feesTbps: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetTraderVolumeTiersEvent {
    type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]];
    type OutputTuple = [tiers: bigint[], feesTbps: bigint[]];
    interface OutputObject {
        tiers: bigint[];
        feesTbps: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SetUtilityTokenEvent {
    type InputTuple = [tokenAddr: AddressLike];
    type OutputTuple = [tokenAddr: string];
    interface OutputObject {
        tokenAddr: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SettleEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        trader: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        trader: string,
        amount: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        trader: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SettleStateEvent {
    type InputTuple = [perpetualId: BigNumberish];
    type OutputTuple = [perpetualId: bigint];
    interface OutputObject {
        perpetualId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SettlementCompleteEvent {
    type InputTuple = [perpetualId: BigNumberish];
    type OutputTuple = [perpetualId: bigint];
    interface OutputObject {
        perpetualId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TokensDepositedEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        trader: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        trader: string,
        amount: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        trader: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TokensWithdrawnEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        trader: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        trader: string,
        amount: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        trader: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TradeEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        trader: AddressLike,
        order: IPerpetualOrder.OrderStruct,
        orderDigest: BytesLike,
        newPositionSizeBC: BigNumberish,
        price: BigNumberish,
        fFeeCC: BigNumberish,
        fPnlCC: BigNumberish,
        fB2C: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        trader: string,
        order: IPerpetualOrder.OrderStructOutput,
        orderDigest: string,
        newPositionSizeBC: bigint,
        price: bigint,
        fFeeCC: bigint,
        fPnlCC: bigint,
        fB2C: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        trader: string;
        order: IPerpetualOrder.OrderStructOutput;
        orderDigest: string;
        newPositionSizeBC: bigint;
        price: bigint;
        fFeeCC: bigint;
        fPnlCC: bigint;
        fB2C: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferAddressToEvent {
    type InputTuple = [
        name: string,
        oldOBFactory: AddressLike,
        newOBFactory: AddressLike
    ];
    type OutputTuple = [
        name: string,
        oldOBFactory: string,
        newOBFactory: string
    ];
    interface OutputObject {
        name: string;
        oldOBFactory: string;
        newOBFactory: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpdateBrokerAddedCashEvent {
    type InputTuple = [
        poolId: BigNumberish,
        iLots: BigNumberish,
        iNewBrokerLots: BigNumberish
    ];
    type OutputTuple = [
        poolId: bigint,
        iLots: bigint,
        iNewBrokerLots: bigint
    ];
    interface OutputObject {
        poolId: bigint;
        iLots: bigint;
        iNewBrokerLots: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpdateFundingRateEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        fFundingRate: BigNumberish
    ];
    type OutputTuple = [perpetualId: bigint, fFundingRate: bigint];
    interface OutputObject {
        perpetualId: bigint;
        fFundingRate: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpdateMarginAccountEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        trader: AddressLike,
        fFundingPaymentCC: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        trader: string,
        fFundingPaymentCC: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        trader: string;
        fFundingPaymentCC: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpdateMarkPriceEvent {
    type InputTuple = [
        perpetualId: BigNumberish,
        fMidPricePremium: BigNumberish,
        fMarkPricePremium: BigNumberish,
        fMarkIndexPrice: BigNumberish
    ];
    type OutputTuple = [
        perpetualId: bigint,
        fMidPricePremium: bigint,
        fMarkPricePremium: bigint,
        fMarkIndexPrice: bigint
    ];
    interface OutputObject {
        perpetualId: bigint;
        fMidPricePremium: bigint;
        fMarkPricePremium: bigint;
        fMarkIndexPrice: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface IPerpetualManager extends BaseContract {
    connect(runner?: ContractRunner | null): IPerpetualManager;
    waitForDeployment(): Promise<this>;
    interface: IPerpetualManagerInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    activatePerpetual: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    addLiquidity: TypedContractMethod<[
        _iPoolIndex: BigNumberish,
        _tokenAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    adjustSettlementPrice: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fSettlementS2: BigNumberish,
        _fSettlementS3: BigNumberish
    ], [
        void
    ], "nonpayable">;
    calculateDefaultFundSize: TypedContractMethod<[
        _fK2AMM: [BigNumberish, BigNumberish],
        _fk2Trader: BigNumberish,
        _fCoverN: BigNumberish,
        fStressRet2: [BigNumberish, BigNumberish],
        fStressRet3: [BigNumberish, BigNumberish],
        fIndexPrices: [BigNumberish, BigNumberish],
        _eCCY: BigNumberish
    ], [
        bigint
    ], "view">;
    calculatePerpetualPrice: TypedContractMethod<[
        _ammVars: AMMPerpLogic.AMMVariablesStruct,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTradeAmount: BigNumberish,
        _fBidAskSpread: BigNumberish,
        _fIncentiveSpread: BigNumberish
    ], [
        bigint
    ], "view">;
    calculateRiskNeutralPD: TypedContractMethod<[
        _ammVars: AMMPerpLogic.AMMVariablesStruct,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTradeAmount: BigNumberish,
        _withCDF: boolean
    ], [
        [bigint, bigint]
    ], "view">;
    clearTradersInPool: TypedContractMethod<[
        _id: BigNumberish,
        _bulkSize: BigNumberish
    ], [
        boolean
    ], "nonpayable">;
    countActivePerpAccounts: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        bigint
    ], "view">;
    createLiquidityPool: TypedContractMethod<[
        _marginTokenAddress: AddressLike,
        _iTargetPoolSizeUpdateTime: BigNumberish,
        _fBrokerCollateralLotSize: BigNumberish,
        _fCeilPnLShare: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    createPerpetual: TypedContractMethod<[
        _iPoolId: BigNumberish,
        _baseQuoteS2: [BytesLike, BytesLike],
        _baseQuoteS3: [BytesLike, BytesLike],
        _baseParams: BigNumberish[],
        _underlyingRiskParams: [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        _defaultFundRiskParams: BigNumberish[],
        _eCollateralCurrency: BigNumberish
    ], [
        void
    ], "nonpayable">;
    deactivatePerp: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    decodeUint16Float: TypedContractMethod<[num: BigNumberish], [bigint], "view">;
    decreasePoolCash: TypedContractMethod<[
        _iPoolIdx: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    deposit: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fAmount: BigNumberish,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        void
    ], "payable">;
    depositBrokerLots: TypedContractMethod<[
        _poolId: BigNumberish,
        _iLots: BigNumberish
    ], [
        void
    ], "nonpayable">;
    depositMarginForOpeningTrade: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _fDepositRequired: BigNumberish,
        _order: IPerpetualOrder.OrderStruct
    ], [
        boolean
    ], "nonpayable">;
    depositToDefaultFund: TypedContractMethod<[
        _poolId: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    determineExchangeFee: TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct
    ], [
        bigint
    ], "view">;
    distributeFees: TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct,
        _brkrFeeTbps: BigNumberish,
        _protocolFeeTbps: BigNumberish,
        _hasOpened: boolean
    ], [
        bigint
    ], "nonpayable">;
    distributeFeesLiquidation: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fDeltaPositionBC: BigNumberish,
        _protocolFeeTbps: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    entropy: TypedContractMethod<[_p: BigNumberish], [bigint], "view">;
    executeCancelOrder: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _digest: BytesLike
    ], [
        void
    ], "nonpayable">;
    executeLiquidityWithdrawal: TypedContractMethod<[
        _poolId: BigNumberish,
        _lpAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    executeTrade: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fTraderPos: BigNumberish,
        _fTradeAmount: BigNumberish,
        _fPrice: BigNumberish,
        _isClose: boolean
    ], [
        bigint
    ], "nonpayable">;
    getAMMPerpLogic: TypedContractMethod<[], [string], "view">;
    getAMMState: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        bigint[]
    ], "view">;
    getActivePerpAccounts: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        string[]
    ], "view">;
    getActivePerpAccountsByChunks: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _from: BigNumberish,
        _to: BigNumberish
    ], [
        string[]
    ], "view">;
    getBrokerDesignation: TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getBrokerInducedFee: TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getCollateralTokenAmountForPricing: TypedContractMethod<[
        _poolId: BigNumberish
    ], [
        bigint
    ], "view">;
    getCurrentBrokerVolume: TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getCurrentTraderVolume: TypedContractMethod<[
        _poolId: BigNumberish,
        _traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getDepositAmountForLvgPosition: TypedContractMethod<[
        _fPosition0: BigNumberish,
        _fBalance0: BigNumberish,
        _fTradeAmount: BigNumberish,
        _fTargetLeverage: BigNumberish,
        _fPrice: BigNumberish,
        _fS2Mark: BigNumberish,
        _fS3: BigNumberish,
        _fS2: BigNumberish
    ], [
        bigint
    ], "view">;
    getExchangeFeePrdMkts: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fAmount: BigNumberish,
        _leverageTDR: BigNumberish,
        _traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFeeForBrokerDesignation: TypedContractMethod<[
        _brokerDesignation: BigNumberish
    ], [
        bigint
    ], "view">;
    getFeeForBrokerStake: TypedContractMethod<[
        brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFeeForBrokerVolume: TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFeeForTraderStake: TypedContractMethod<[
        traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFeeForTraderVolume: TypedContractMethod<[
        _poolId: BigNumberish,
        _traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getLastPerpetualBaseToUSDConversion: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        bigint
    ], "view">;
    getLiquidatableAccounts: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        string[]
    ], "view">;
    getLiquidityPool: TypedContractMethod<[
        _poolId: BigNumberish
    ], [
        PerpStorage.LiquidityPoolDataStructOutput
    ], "view">;
    getLiquidityPools: TypedContractMethod<[
        _poolIdFrom: BigNumberish,
        _poolIdTo: BigNumberish
    ], [
        PerpStorage.LiquidityPoolDataStructOutput[]
    ], "view">;
    getMarginAccount: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _traderAddress: AddressLike
    ], [
        PerpStorage.MarginAccountStructOutput
    ], "view">;
    getMarginAccounts: TypedContractMethod<[
        _perpetualIds: BigNumberish[],
        _traderAddress: AddressLike
    ], [
        PerpStorage.MarginAccountStructOutput[]
    ], "view">;
    getMaxSignedOpenTradeSizeForPos: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fCurrentTraderPos: BigNumberish,
        _isBuy: boolean
    ], [
        bigint
    ], "view">;
    getNextLiquidatableTrader: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        string
    ], "view">;
    getOracleFactory: TypedContractMethod<[], [string], "view">;
    getOraclePrice: TypedContractMethod<[
        _baseQuote: [BytesLike, BytesLike]
    ], [
        [bigint, bigint]
    ], "view">;
    getOracleUpdateTime: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        bigint
    ], "view">;
    getOrderBookAddress: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        string
    ], "view">;
    getOrderBookFactoryAddress: TypedContractMethod<[], [string], "view">;
    getPerpetual: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        PerpStorage.PerpetualDataStructOutput
    ], "view">;
    getPerpetualCountInPool: TypedContractMethod<[
        _poolId: BigNumberish
    ], [
        bigint
    ], "view">;
    getPerpetualId: TypedContractMethod<[
        _poolId: BigNumberish,
        _perpetualIndex: BigNumberish
    ], [
        bigint
    ], "view">;
    getPerpetualStaticInfo: TypedContractMethod<[
        perpetualIds: BigNumberish[]
    ], [
        IPerpetualInfo.PerpetualStaticInfoStructOutput[]
    ], "view">;
    getPerpetuals: TypedContractMethod<[
        perpetualIds: BigNumberish[]
    ], [
        PerpStorage.PerpetualDataStructOutput[]
    ], "view">;
    getPoolCount: TypedContractMethod<[], [bigint], "view">;
    getPoolIdByPerpetualId: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        bigint
    ], "view">;
    getPoolStaticInfo: TypedContractMethod<[
        _poolFromIdx: BigNumberish,
        _poolToIdx: BigNumberish
    ], [
        [
            bigint[][],
            string[],
            string[],
            string
        ] & {
            _oracleFactoryAddress: string;
        }
    ], "view">;
    getPriceInfo: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        [string[], boolean[]]
    ], "view">;
    getSettleableAccounts: TypedContractMethod<[
        _perpetualId: BigNumberish,
        start: BigNumberish,
        count: BigNumberish
    ], [
        string[]
    ], "view">;
    getShareTokenFactory: TypedContractMethod<[], [string], "view">;
    getShareTokenPriceD18: TypedContractMethod<[
        _poolId: BigNumberish
    ], [
        bigint
    ], "view">;
    getTargetCollateralM1: TypedContractMethod<[
        _fK2: BigNumberish,
        _fL1: BigNumberish,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTargetDD: BigNumberish
    ], [
        bigint
    ], "view">;
    getTargetCollateralM2: TypedContractMethod<[
        _fK2: BigNumberish,
        _fL1: BigNumberish,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTargetDD: BigNumberish
    ], [
        bigint
    ], "view">;
    getTargetCollateralM3: TypedContractMethod<[
        _fK2: BigNumberish,
        _fL1: BigNumberish,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTargetDD: BigNumberish
    ], [
        bigint
    ], "view">;
    getTokenAmountToReturn: TypedContractMethod<[
        _poolId: BigNumberish,
        _shareAmount: BigNumberish
    ], [
        bigint
    ], "view">;
    getTraderState: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _traderAddress: AddressLike,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        bigint[]
    ], "view">;
    getTreasuryAddress: TypedContractMethod<[], [string], "view">;
    getWithdrawRequests: TypedContractMethod<[
        poolId: BigNumberish,
        _fromIdx: BigNumberish,
        numRequests: BigNumberish
    ], [
        PerpStorage.WithdrawRequestStructOutput[]
    ], "view">;
    increasePoolCash: TypedContractMethod<[
        _iPoolIdx: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    isActiveAccount: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _traderAddress: AddressLike
    ], [
        boolean
    ], "view">;
    isDelegate: TypedContractMethod<[
        _trader: AddressLike,
        _delegate: AddressLike
    ], [
        boolean
    ], "view">;
    isMarketClosed: TypedContractMethod<[
        _baseCurrency: BytesLike,
        _quoteCurrency: BytesLike
    ], [
        boolean
    ], "view">;
    isOrderCanceled: TypedContractMethod<[digest: BytesLike], [boolean], "view">;
    isOrderExecuted: TypedContractMethod<[digest: BytesLike], [boolean], "view">;
    isPerpMarketClosed: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        boolean
    ], "view">;
    liquidateByAMM: TypedContractMethod<[
        _perpetualIndex: BigNumberish,
        _liquidatorAddr: AddressLike,
        _traderAddr: AddressLike,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        bigint
    ], "payable">;
    pauseLiquidityProvision: TypedContractMethod<[
        _poolId: BigNumberish,
        _pauseOn: boolean
    ], [
        void
    ], "nonpayable">;
    prdMktsLvgFee: TypedContractMethod<[
        _fPx: BigNumberish,
        _fm: BigNumberish,
        _fTradeAmt: BigNumberish,
        _fMgnRate: BigNumberish
    ], [
        bigint
    ], "view">;
    preTrade: TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct
    ], [
        [bigint, bigint]
    ], "nonpayable">;
    priceImpact: TypedContractMethod<[
        _amount: BigNumberish,
        _params: BigNumberish
    ], [
        bigint
    ], "view">;
    queryExchangeFee: TypedContractMethod<[
        _poolId: BigNumberish,
        _traderAddr: AddressLike,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    queryMidPrices: TypedContractMethod<[
        _perpetualIds: BigNumberish[],
        _idxPriceDataPairs: BigNumberish[]
    ], [
        bigint[]
    ], "view">;
    queryPerpetualPrice: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _fTradeAmountBC: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish],
        _confTbps: BigNumberish,
        _params: BigNumberish
    ], [
        bigint
    ], "view">;
    rebalance: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    reduceMarginCollateral: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fAmountToWithdraw: BigNumberish
    ], [
        void
    ], "nonpayable">;
    resetMarkPremium: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    runLiquidityPool: TypedContractMethod<[
        _liqPoolID: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setAMMPerpLogic: TypedContractMethod<[
        _AMMPerpLogic: AddressLike
    ], [
        void
    ], "nonpayable">;
    setBlockDelay: TypedContractMethod<[
        _delay: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setBrokerTiers: TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setBrokerVolumeTiers: TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setDelegate: TypedContractMethod<[
        delegate: AddressLike,
        index: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setEmergencyState: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setFeesForDesignation: TypedContractMethod<[
        _designations: BigNumberish[],
        _fees: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setInitialVolumeForFee: TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike,
        _feeTbps: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setNormalState: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setOracleFactory: TypedContractMethod<[
        _oracleFactory: AddressLike
    ], [
        void
    ], "nonpayable">;
    setOracleFactoryForPerpetual: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _oracleAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    setOrderBookFactory: TypedContractMethod<[
        _orderBookFactory: AddressLike
    ], [
        void
    ], "nonpayable">;
    setPerpetualBaseParams: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _baseParams: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setPerpetualOracles: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _baseQuoteS2: [BytesLike, BytesLike],
        _baseQuoteS3: [BytesLike, BytesLike]
    ], [
        void
    ], "nonpayable">;
    setPerpetualParam: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _varName: string,
        _value: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setPerpetualParamPair: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _name: string,
        _value1: BigNumberish,
        _value2: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setPerpetualPoolFactory: TypedContractMethod<[
        _shareTokenFactory: AddressLike
    ], [
        void
    ], "nonpayable">;
    setPerpetualRiskParams: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _underlyingRiskParams: [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        _defaultFundRiskParams: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setPoolParam: TypedContractMethod<[
        _poolId: BigNumberish,
        _name: string,
        _value: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setTraderTiers: TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setTraderVolumeTiers: TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    setTreasury: TypedContractMethod<[
        _treasury: AddressLike
    ], [
        void
    ], "nonpayable">;
    setUtilityTokenAddr: TypedContractMethod<[
        tokenAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    settle: TypedContractMethod<[
        _perpetualID: BigNumberish,
        _traderAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    settleNextTraderInPool: TypedContractMethod<[
        _id: BigNumberish
    ], [
        boolean
    ], "nonpayable">;
    settleTraders: TypedContractMethod<[
        _perpetualID: BigNumberish,
        _bulkSize: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    splitProtocolFee: TypedContractMethod<[
        fee: BigNumberish
    ], [
        [bigint, bigint]
    ], "view">;
    togglePerpEmergencyState: TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    tradeViaOrderBook: TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct,
        _executor: AddressLike
    ], [
        boolean
    ], "nonpayable">;
    transferBrokerLots: TypedContractMethod<[
        _poolId: BigNumberish,
        _transferToAddr: AddressLike,
        _lots: BigNumberish
    ], [
        void
    ], "nonpayable">;
    transferBrokerOwnership: TypedContractMethod<[
        _poolId: BigNumberish,
        _transferToAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    transferEarningsToTreasury: TypedContractMethod<[
        _poolId: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    transferValueToTreasury: TypedContractMethod<[], [boolean], "nonpayable">;
    updateAMMTargetFundSize: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateDefaultFundTargetSize: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateDefaultFundTargetSizeRandom: TypedContractMethod<[
        _iPoolIndex: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateFundingAndPricesAfter: TypedContractMethod<[
        _iPerpetualId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateFundingAndPricesBefore: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _revertIfClosed: boolean
    ], [
        void
    ], "nonpayable">;
    updatePriceFeeds: TypedContractMethod<[
        _perpetualId: BigNumberish,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[],
        _maxAcceptableFeedAge: BigNumberish
    ], [
        void
    ], "payable">;
    updateVolumeEMAOnNewTrade: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _brokerAddr: AddressLike,
        _tradeAmountBC: BigNumberish
    ], [
        void
    ], "nonpayable">;
    validateStopPrice: TypedContractMethod<[
        _isLong: boolean,
        _fMarkPrice: BigNumberish,
        _fTriggerPrice: BigNumberish
    ], [
        void
    ], "view">;
    withdraw: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fAmount: BigNumberish,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        void
    ], "payable">;
    withdrawAll: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        void
    ], "payable">;
    withdrawDepositFromMarginAccount: TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    withdrawFromDefaultFund: TypedContractMethod<[
        _poolId: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    withdrawLiquidity: TypedContractMethod<[
        _iPoolIndex: BigNumberish,
        _shareAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "activatePerpetual"): TypedContractMethod<[_perpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "addLiquidity"): TypedContractMethod<[
        _iPoolIndex: BigNumberish,
        _tokenAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "adjustSettlementPrice"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fSettlementS2: BigNumberish,
        _fSettlementS3: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "calculateDefaultFundSize"): TypedContractMethod<[
        _fK2AMM: [BigNumberish, BigNumberish],
        _fk2Trader: BigNumberish,
        _fCoverN: BigNumberish,
        fStressRet2: [BigNumberish, BigNumberish],
        fStressRet3: [BigNumberish, BigNumberish],
        fIndexPrices: [BigNumberish, BigNumberish],
        _eCCY: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "calculatePerpetualPrice"): TypedContractMethod<[
        _ammVars: AMMPerpLogic.AMMVariablesStruct,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTradeAmount: BigNumberish,
        _fBidAskSpread: BigNumberish,
        _fIncentiveSpread: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "calculateRiskNeutralPD"): TypedContractMethod<[
        _ammVars: AMMPerpLogic.AMMVariablesStruct,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTradeAmount: BigNumberish,
        _withCDF: boolean
    ], [
        [bigint, bigint]
    ], "view">;
    getFunction(nameOrSignature: "clearTradersInPool"): TypedContractMethod<[
        _id: BigNumberish,
        _bulkSize: BigNumberish
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "countActivePerpAccounts"): TypedContractMethod<[_perpetualId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "createLiquidityPool"): TypedContractMethod<[
        _marginTokenAddress: AddressLike,
        _iTargetPoolSizeUpdateTime: BigNumberish,
        _fBrokerCollateralLotSize: BigNumberish,
        _fCeilPnLShare: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "createPerpetual"): TypedContractMethod<[
        _iPoolId: BigNumberish,
        _baseQuoteS2: [BytesLike, BytesLike],
        _baseQuoteS3: [BytesLike, BytesLike],
        _baseParams: BigNumberish[],
        _underlyingRiskParams: [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        _defaultFundRiskParams: BigNumberish[],
        _eCollateralCurrency: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "deactivatePerp"): TypedContractMethod<[_perpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "decodeUint16Float"): TypedContractMethod<[num: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "decreasePoolCash"): TypedContractMethod<[
        _iPoolIdx: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "deposit"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fAmount: BigNumberish,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        void
    ], "payable">;
    getFunction(nameOrSignature: "depositBrokerLots"): TypedContractMethod<[
        _poolId: BigNumberish,
        _iLots: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "depositMarginForOpeningTrade"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _fDepositRequired: BigNumberish,
        _order: IPerpetualOrder.OrderStruct
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "depositToDefaultFund"): TypedContractMethod<[
        _poolId: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "determineExchangeFee"): TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "distributeFees"): TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct,
        _brkrFeeTbps: BigNumberish,
        _protocolFeeTbps: BigNumberish,
        _hasOpened: boolean
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "distributeFeesLiquidation"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fDeltaPositionBC: BigNumberish,
        _protocolFeeTbps: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "entropy"): TypedContractMethod<[_p: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "executeCancelOrder"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _digest: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "executeLiquidityWithdrawal"): TypedContractMethod<[
        _poolId: BigNumberish,
        _lpAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "executeTrade"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fTraderPos: BigNumberish,
        _fTradeAmount: BigNumberish,
        _fPrice: BigNumberish,
        _isClose: boolean
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "getAMMPerpLogic"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "getAMMState"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        bigint[]
    ], "view">;
    getFunction(nameOrSignature: "getActivePerpAccounts"): TypedContractMethod<[_perpetualId: BigNumberish], [string[]], "view">;
    getFunction(nameOrSignature: "getActivePerpAccountsByChunks"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _from: BigNumberish,
        _to: BigNumberish
    ], [
        string[]
    ], "view">;
    getFunction(nameOrSignature: "getBrokerDesignation"): TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getBrokerInducedFee"): TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getCollateralTokenAmountForPricing"): TypedContractMethod<[_poolId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getCurrentBrokerVolume"): TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getCurrentTraderVolume"): TypedContractMethod<[
        _poolId: BigNumberish,
        _traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getDepositAmountForLvgPosition"): TypedContractMethod<[
        _fPosition0: BigNumberish,
        _fBalance0: BigNumberish,
        _fTradeAmount: BigNumberish,
        _fTargetLeverage: BigNumberish,
        _fPrice: BigNumberish,
        _fS2Mark: BigNumberish,
        _fS3: BigNumberish,
        _fS2: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getExchangeFeePrdMkts"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fAmount: BigNumberish,
        _leverageTDR: BigNumberish,
        _traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getFeeForBrokerDesignation"): TypedContractMethod<[_brokerDesignation: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getFeeForBrokerStake"): TypedContractMethod<[brokerAddr: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "getFeeForBrokerVolume"): TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getFeeForTraderStake"): TypedContractMethod<[traderAddr: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "getFeeForTraderVolume"): TypedContractMethod<[
        _poolId: BigNumberish,
        _traderAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getLastPerpetualBaseToUSDConversion"): TypedContractMethod<[_iPerpetualId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getLiquidatableAccounts"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        string[]
    ], "view">;
    getFunction(nameOrSignature: "getLiquidityPool"): TypedContractMethod<[
        _poolId: BigNumberish
    ], [
        PerpStorage.LiquidityPoolDataStructOutput
    ], "view">;
    getFunction(nameOrSignature: "getLiquidityPools"): TypedContractMethod<[
        _poolIdFrom: BigNumberish,
        _poolIdTo: BigNumberish
    ], [
        PerpStorage.LiquidityPoolDataStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "getMarginAccount"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _traderAddress: AddressLike
    ], [
        PerpStorage.MarginAccountStructOutput
    ], "view">;
    getFunction(nameOrSignature: "getMarginAccounts"): TypedContractMethod<[
        _perpetualIds: BigNumberish[],
        _traderAddress: AddressLike
    ], [
        PerpStorage.MarginAccountStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "getMaxSignedOpenTradeSizeForPos"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fCurrentTraderPos: BigNumberish,
        _isBuy: boolean
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getNextLiquidatableTrader"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        string
    ], "view">;
    getFunction(nameOrSignature: "getOracleFactory"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "getOraclePrice"): TypedContractMethod<[
        _baseQuote: [BytesLike, BytesLike]
    ], [
        [bigint, bigint]
    ], "view">;
    getFunction(nameOrSignature: "getOracleUpdateTime"): TypedContractMethod<[_perpetualId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getOrderBookAddress"): TypedContractMethod<[_perpetualId: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "getOrderBookFactoryAddress"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "getPerpetual"): TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        PerpStorage.PerpetualDataStructOutput
    ], "view">;
    getFunction(nameOrSignature: "getPerpetualCountInPool"): TypedContractMethod<[_poolId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getPerpetualId"): TypedContractMethod<[
        _poolId: BigNumberish,
        _perpetualIndex: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getPerpetualStaticInfo"): TypedContractMethod<[
        perpetualIds: BigNumberish[]
    ], [
        IPerpetualInfo.PerpetualStaticInfoStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "getPerpetuals"): TypedContractMethod<[
        perpetualIds: BigNumberish[]
    ], [
        PerpStorage.PerpetualDataStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "getPoolCount"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "getPoolIdByPerpetualId"): TypedContractMethod<[_perpetualId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getPoolStaticInfo"): TypedContractMethod<[
        _poolFromIdx: BigNumberish,
        _poolToIdx: BigNumberish
    ], [
        [
            bigint[][],
            string[],
            string[],
            string
        ] & {
            _oracleFactoryAddress: string;
        }
    ], "view">;
    getFunction(nameOrSignature: "getPriceInfo"): TypedContractMethod<[
        _perpetualId: BigNumberish
    ], [
        [string[], boolean[]]
    ], "view">;
    getFunction(nameOrSignature: "getSettleableAccounts"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        start: BigNumberish,
        count: BigNumberish
    ], [
        string[]
    ], "view">;
    getFunction(nameOrSignature: "getShareTokenFactory"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "getShareTokenPriceD18"): TypedContractMethod<[_poolId: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "getTargetCollateralM1"): TypedContractMethod<[
        _fK2: BigNumberish,
        _fL1: BigNumberish,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTargetDD: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getTargetCollateralM2"): TypedContractMethod<[
        _fK2: BigNumberish,
        _fL1: BigNumberish,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTargetDD: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getTargetCollateralM3"): TypedContractMethod<[
        _fK2: BigNumberish,
        _fL1: BigNumberish,
        _mktVars: AMMPerpLogic.MarketVariablesStruct,
        _fTargetDD: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getTokenAmountToReturn"): TypedContractMethod<[
        _poolId: BigNumberish,
        _shareAmount: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getTraderState"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _traderAddress: AddressLike,
        _fIndexPrice: [BigNumberish, BigNumberish]
    ], [
        bigint[]
    ], "view">;
    getFunction(nameOrSignature: "getTreasuryAddress"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "getWithdrawRequests"): TypedContractMethod<[
        poolId: BigNumberish,
        _fromIdx: BigNumberish,
        numRequests: BigNumberish
    ], [
        PerpStorage.WithdrawRequestStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "increasePoolCash"): TypedContractMethod<[
        _iPoolIdx: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "isActiveAccount"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _traderAddress: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "isDelegate"): TypedContractMethod<[
        _trader: AddressLike,
        _delegate: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "isMarketClosed"): TypedContractMethod<[
        _baseCurrency: BytesLike,
        _quoteCurrency: BytesLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "isOrderCanceled"): TypedContractMethod<[digest: BytesLike], [boolean], "view">;
    getFunction(nameOrSignature: "isOrderExecuted"): TypedContractMethod<[digest: BytesLike], [boolean], "view">;
    getFunction(nameOrSignature: "isPerpMarketClosed"): TypedContractMethod<[_perpetualId: BigNumberish], [boolean], "view">;
    getFunction(nameOrSignature: "liquidateByAMM"): TypedContractMethod<[
        _perpetualIndex: BigNumberish,
        _liquidatorAddr: AddressLike,
        _traderAddr: AddressLike,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        bigint
    ], "payable">;
    getFunction(nameOrSignature: "pauseLiquidityProvision"): TypedContractMethod<[
        _poolId: BigNumberish,
        _pauseOn: boolean
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "prdMktsLvgFee"): TypedContractMethod<[
        _fPx: BigNumberish,
        _fm: BigNumberish,
        _fTradeAmt: BigNumberish,
        _fMgnRate: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "preTrade"): TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct
    ], [
        [bigint, bigint]
    ], "nonpayable">;
    getFunction(nameOrSignature: "priceImpact"): TypedContractMethod<[
        _amount: BigNumberish,
        _params: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "queryExchangeFee"): TypedContractMethod<[
        _poolId: BigNumberish,
        _traderAddr: AddressLike,
        _brokerAddr: AddressLike
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "queryMidPrices"): TypedContractMethod<[
        _perpetualIds: BigNumberish[],
        _idxPriceDataPairs: BigNumberish[]
    ], [
        bigint[]
    ], "view">;
    getFunction(nameOrSignature: "queryPerpetualPrice"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _fTradeAmountBC: BigNumberish,
        _fIndexPrice: [BigNumberish, BigNumberish],
        _confTbps: BigNumberish,
        _params: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "rebalance"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "reduceMarginCollateral"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fAmountToWithdraw: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "resetMarkPremium"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "runLiquidityPool"): TypedContractMethod<[_liqPoolID: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setAMMPerpLogic"): TypedContractMethod<[_AMMPerpLogic: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setBlockDelay"): TypedContractMethod<[_delay: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setBrokerTiers"): TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setBrokerVolumeTiers"): TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setDelegate"): TypedContractMethod<[
        delegate: AddressLike,
        index: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setEmergencyState"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setFeesForDesignation"): TypedContractMethod<[
        _designations: BigNumberish[],
        _fees: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setInitialVolumeForFee"): TypedContractMethod<[
        _poolId: BigNumberish,
        _brokerAddr: AddressLike,
        _feeTbps: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setNormalState"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "setOracleFactory"): TypedContractMethod<[_oracleFactory: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setOracleFactoryForPerpetual"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _oracleAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setOrderBookFactory"): TypedContractMethod<[
        _orderBookFactory: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPerpetualBaseParams"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _baseParams: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPerpetualOracles"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _baseQuoteS2: [BytesLike, BytesLike],
        _baseQuoteS3: [BytesLike, BytesLike]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPerpetualParam"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _varName: string,
        _value: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPerpetualParamPair"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _name: string,
        _value1: BigNumberish,
        _value2: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPerpetualPoolFactory"): TypedContractMethod<[
        _shareTokenFactory: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPerpetualRiskParams"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _underlyingRiskParams: [
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish,
            BigNumberish
        ],
        _defaultFundRiskParams: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setPoolParam"): TypedContractMethod<[
        _poolId: BigNumberish,
        _name: string,
        _value: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setTraderTiers"): TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setTraderVolumeTiers"): TypedContractMethod<[
        _tiers: BigNumberish[],
        _feesTbps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setTreasury"): TypedContractMethod<[_treasury: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setUtilityTokenAddr"): TypedContractMethod<[tokenAddr: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "settle"): TypedContractMethod<[
        _perpetualID: BigNumberish,
        _traderAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "settleNextTraderInPool"): TypedContractMethod<[_id: BigNumberish], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "settleTraders"): TypedContractMethod<[
        _perpetualID: BigNumberish,
        _bulkSize: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "splitProtocolFee"): TypedContractMethod<[fee: BigNumberish], [[bigint, bigint]], "view">;
    getFunction(nameOrSignature: "togglePerpEmergencyState"): TypedContractMethod<[_perpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "tradeViaOrderBook"): TypedContractMethod<[
        _order: IPerpetualOrder.OrderStruct,
        _executor: AddressLike
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "transferBrokerLots"): TypedContractMethod<[
        _poolId: BigNumberish,
        _transferToAddr: AddressLike,
        _lots: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "transferBrokerOwnership"): TypedContractMethod<[
        _poolId: BigNumberish,
        _transferToAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "transferEarningsToTreasury"): TypedContractMethod<[
        _poolId: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "transferValueToTreasury"): TypedContractMethod<[], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "updateAMMTargetFundSize"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateDefaultFundTargetSize"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateDefaultFundTargetSizeRandom"): TypedContractMethod<[_iPoolIndex: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateFundingAndPricesAfter"): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateFundingAndPricesBefore"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _revertIfClosed: boolean
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "updatePriceFeeds"): TypedContractMethod<[
        _perpetualId: BigNumberish,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[],
        _maxAcceptableFeedAge: BigNumberish
    ], [
        void
    ], "payable">;
    getFunction(nameOrSignature: "updateVolumeEMAOnNewTrade"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _brokerAddr: AddressLike,
        _tradeAmountBC: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "validateStopPrice"): TypedContractMethod<[
        _isLong: boolean,
        _fMarkPrice: BigNumberish,
        _fTriggerPrice: BigNumberish
    ], [
        void
    ], "view">;
    getFunction(nameOrSignature: "withdraw"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _fAmount: BigNumberish,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        void
    ], "payable">;
    getFunction(nameOrSignature: "withdrawAll"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike,
        _updateData: BytesLike[],
        _publishTimes: BigNumberish[]
    ], [
        void
    ], "payable">;
    getFunction(nameOrSignature: "withdrawDepositFromMarginAccount"): TypedContractMethod<[
        _iPerpetualId: BigNumberish,
        _traderAddr: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "withdrawFromDefaultFund"): TypedContractMethod<[
        _poolId: BigNumberish,
        _fAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "withdrawLiquidity"): TypedContractMethod<[
        _iPoolIndex: BigNumberish,
        _shareAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getEvent(key: "BrokerLotsTransferred"): TypedContractEvent<BrokerLotsTransferredEvent.InputTuple, BrokerLotsTransferredEvent.OutputTuple, BrokerLotsTransferredEvent.OutputObject>;
    getEvent(key: "BrokerVolumeTransferred"): TypedContractEvent<BrokerVolumeTransferredEvent.InputTuple, BrokerVolumeTransferredEvent.OutputTuple, BrokerVolumeTransferredEvent.OutputObject>;
    getEvent(key: "Clear"): TypedContractEvent<ClearEvent.InputTuple, ClearEvent.OutputTuple, ClearEvent.OutputObject>;
    getEvent(key: "DistributeFees"): TypedContractEvent<DistributeFeesEvent.InputTuple, DistributeFeesEvent.OutputTuple, DistributeFeesEvent.OutputObject>;
    getEvent(key: "Liquidate"): TypedContractEvent<LiquidateEvent.InputTuple, LiquidateEvent.OutputTuple, LiquidateEvent.OutputObject>;
    getEvent(key: "LiquidityAdded"): TypedContractEvent<LiquidityAddedEvent.InputTuple, LiquidityAddedEvent.OutputTuple, LiquidityAddedEvent.OutputObject>;
    getEvent(key: "LiquidityPoolCreated"): TypedContractEvent<LiquidityPoolCreatedEvent.InputTuple, LiquidityPoolCreatedEvent.OutputTuple, LiquidityPoolCreatedEvent.OutputObject>;
    getEvent(key: "LiquidityProvisionPaused"): TypedContractEvent<LiquidityProvisionPausedEvent.InputTuple, LiquidityProvisionPausedEvent.OutputTuple, LiquidityProvisionPausedEvent.OutputObject>;
    getEvent(key: "LiquidityRemoved"): TypedContractEvent<LiquidityRemovedEvent.InputTuple, LiquidityRemovedEvent.OutputTuple, LiquidityRemovedEvent.OutputObject>;
    getEvent(key: "LiquidityWithdrawalInitiated"): TypedContractEvent<LiquidityWithdrawalInitiatedEvent.InputTuple, LiquidityWithdrawalInitiatedEvent.OutputTuple, LiquidityWithdrawalInitiatedEvent.OutputObject>;
    getEvent(key: "PerpetualCreated"): TypedContractEvent<PerpetualCreatedEvent.InputTuple, PerpetualCreatedEvent.OutputTuple, PerpetualCreatedEvent.OutputObject>;
    getEvent(key: "PerpetualLimitOrderCancelled"): TypedContractEvent<PerpetualLimitOrderCancelledEvent.InputTuple, PerpetualLimitOrderCancelledEvent.OutputTuple, PerpetualLimitOrderCancelledEvent.OutputObject>;
    getEvent(key: "RunLiquidityPool"): TypedContractEvent<RunLiquidityPoolEvent.InputTuple, RunLiquidityPoolEvent.OutputTuple, RunLiquidityPoolEvent.OutputObject>;
    getEvent(key: "SetBlockDelay"): TypedContractEvent<SetBlockDelayEvent.InputTuple, SetBlockDelayEvent.OutputTuple, SetBlockDelayEvent.OutputObject>;
    getEvent(key: "SetBrokerDesignations"): TypedContractEvent<SetBrokerDesignationsEvent.InputTuple, SetBrokerDesignationsEvent.OutputTuple, SetBrokerDesignationsEvent.OutputObject>;
    getEvent(key: "SetBrokerTiers"): TypedContractEvent<SetBrokerTiersEvent.InputTuple, SetBrokerTiersEvent.OutputTuple, SetBrokerTiersEvent.OutputObject>;
    getEvent(key: "SetBrokerVolumeTiers"): TypedContractEvent<SetBrokerVolumeTiersEvent.InputTuple, SetBrokerVolumeTiersEvent.OutputTuple, SetBrokerVolumeTiersEvent.OutputObject>;
    getEvent(key: "SetClearedState"): TypedContractEvent<SetClearedStateEvent.InputTuple, SetClearedStateEvent.OutputTuple, SetClearedStateEvent.OutputObject>;
    getEvent(key: "SetDelegate"): TypedContractEvent<SetDelegateEvent.InputTuple, SetDelegateEvent.OutputTuple, SetDelegateEvent.OutputObject>;
    getEvent(key: "SetEmergencyState"): TypedContractEvent<SetEmergencyStateEvent.InputTuple, SetEmergencyStateEvent.OutputTuple, SetEmergencyStateEvent.OutputObject>;
    getEvent(key: "SetNormalState"): TypedContractEvent<SetNormalStateEvent.InputTuple, SetNormalStateEvent.OutputTuple, SetNormalStateEvent.OutputObject>;
    getEvent(key: "SetOracles"): TypedContractEvent<SetOraclesEvent.InputTuple, SetOraclesEvent.OutputTuple, SetOraclesEvent.OutputObject>;
    getEvent(key: "SetParameter"): TypedContractEvent<SetParameterEvent.InputTuple, SetParameterEvent.OutputTuple, SetParameterEvent.OutputObject>;
    getEvent(key: "SetParameterPair"): TypedContractEvent<SetParameterPairEvent.InputTuple, SetParameterPairEvent.OutputTuple, SetParameterPairEvent.OutputObject>;
    getEvent(key: "SetPerpetualBaseParameters"): TypedContractEvent<SetPerpetualBaseParametersEvent.InputTuple, SetPerpetualBaseParametersEvent.OutputTuple, SetPerpetualBaseParametersEvent.OutputObject>;
    getEvent(key: "SetPerpetualRiskParameters"): TypedContractEvent<SetPerpetualRiskParametersEvent.InputTuple, SetPerpetualRiskParametersEvent.OutputTuple, SetPerpetualRiskParametersEvent.OutputObject>;
    getEvent(key: "SetPoolParameter"): TypedContractEvent<SetPoolParameterEvent.InputTuple, SetPoolParameterEvent.OutputTuple, SetPoolParameterEvent.OutputObject>;
    getEvent(key: "SetTraderTiers"): TypedContractEvent<SetTraderTiersEvent.InputTuple, SetTraderTiersEvent.OutputTuple, SetTraderTiersEvent.OutputObject>;
    getEvent(key: "SetTraderVolumeTiers"): TypedContractEvent<SetTraderVolumeTiersEvent.InputTuple, SetTraderVolumeTiersEvent.OutputTuple, SetTraderVolumeTiersEvent.OutputObject>;
    getEvent(key: "SetUtilityToken"): TypedContractEvent<SetUtilityTokenEvent.InputTuple, SetUtilityTokenEvent.OutputTuple, SetUtilityTokenEvent.OutputObject>;
    getEvent(key: "Settle"): TypedContractEvent<SettleEvent.InputTuple, SettleEvent.OutputTuple, SettleEvent.OutputObject>;
    getEvent(key: "SettleState"): TypedContractEvent<SettleStateEvent.InputTuple, SettleStateEvent.OutputTuple, SettleStateEvent.OutputObject>;
    getEvent(key: "SettlementComplete"): TypedContractEvent<SettlementCompleteEvent.InputTuple, SettlementCompleteEvent.OutputTuple, SettlementCompleteEvent.OutputObject>;
    getEvent(key: "TokensDeposited"): TypedContractEvent<TokensDepositedEvent.InputTuple, TokensDepositedEvent.OutputTuple, TokensDepositedEvent.OutputObject>;
    getEvent(key: "TokensWithdrawn"): TypedContractEvent<TokensWithdrawnEvent.InputTuple, TokensWithdrawnEvent.OutputTuple, TokensWithdrawnEvent.OutputObject>;
    getEvent(key: "Trade"): TypedContractEvent<TradeEvent.InputTuple, TradeEvent.OutputTuple, TradeEvent.OutputObject>;
    getEvent(key: "TransferAddressTo"): TypedContractEvent<TransferAddressToEvent.InputTuple, TransferAddressToEvent.OutputTuple, TransferAddressToEvent.OutputObject>;
    getEvent(key: "UpdateBrokerAddedCash"): TypedContractEvent<UpdateBrokerAddedCashEvent.InputTuple, UpdateBrokerAddedCashEvent.OutputTuple, UpdateBrokerAddedCashEvent.OutputObject>;
    getEvent(key: "UpdateFundingRate"): TypedContractEvent<UpdateFundingRateEvent.InputTuple, UpdateFundingRateEvent.OutputTuple, UpdateFundingRateEvent.OutputObject>;
    getEvent(key: "UpdateMarginAccount"): TypedContractEvent<UpdateMarginAccountEvent.InputTuple, UpdateMarginAccountEvent.OutputTuple, UpdateMarginAccountEvent.OutputObject>;
    getEvent(key: "UpdateMarkPrice"): TypedContractEvent<UpdateMarkPriceEvent.InputTuple, UpdateMarkPriceEvent.OutputTuple, UpdateMarkPriceEvent.OutputObject>;
    filters: {
        "BrokerLotsTransferred(uint8,address,address,uint32)": TypedContractEvent<BrokerLotsTransferredEvent.InputTuple, BrokerLotsTransferredEvent.OutputTuple, BrokerLotsTransferredEvent.OutputObject>;
        BrokerLotsTransferred: TypedContractEvent<BrokerLotsTransferredEvent.InputTuple, BrokerLotsTransferredEvent.OutputTuple, BrokerLotsTransferredEvent.OutputObject>;
        "BrokerVolumeTransferred(uint8,address,address,int128)": TypedContractEvent<BrokerVolumeTransferredEvent.InputTuple, BrokerVolumeTransferredEvent.OutputTuple, BrokerVolumeTransferredEvent.OutputObject>;
        BrokerVolumeTransferred: TypedContractEvent<BrokerVolumeTransferredEvent.InputTuple, BrokerVolumeTransferredEvent.OutputTuple, BrokerVolumeTransferredEvent.OutputObject>;
        "Clear(uint24,address)": TypedContractEvent<ClearEvent.InputTuple, ClearEvent.OutputTuple, ClearEvent.OutputObject>;
        Clear: TypedContractEvent<ClearEvent.InputTuple, ClearEvent.OutputTuple, ClearEvent.OutputObject>;
        "DistributeFees(uint8,uint24,address,int128,int128)": TypedContractEvent<DistributeFeesEvent.InputTuple, DistributeFeesEvent.OutputTuple, DistributeFeesEvent.OutputObject>;
        DistributeFees: TypedContractEvent<DistributeFeesEvent.InputTuple, DistributeFeesEvent.OutputTuple, DistributeFeesEvent.OutputObject>;
        "Liquidate(uint24,address,address,int128,int128,int128,int128,int128)": TypedContractEvent<LiquidateEvent.InputTuple, LiquidateEvent.OutputTuple, LiquidateEvent.OutputObject>;
        Liquidate: TypedContractEvent<LiquidateEvent.InputTuple, LiquidateEvent.OutputTuple, LiquidateEvent.OutputObject>;
        "LiquidityAdded(uint8,address,uint256,uint256)": TypedContractEvent<LiquidityAddedEvent.InputTuple, LiquidityAddedEvent.OutputTuple, LiquidityAddedEvent.OutputObject>;
        LiquidityAdded: TypedContractEvent<LiquidityAddedEvent.InputTuple, LiquidityAddedEvent.OutputTuple, LiquidityAddedEvent.OutputObject>;
        "LiquidityPoolCreated(uint8,address,address,uint16,int128)": TypedContractEvent<LiquidityPoolCreatedEvent.InputTuple, LiquidityPoolCreatedEvent.OutputTuple, LiquidityPoolCreatedEvent.OutputObject>;
        LiquidityPoolCreated: TypedContractEvent<LiquidityPoolCreatedEvent.InputTuple, LiquidityPoolCreatedEvent.OutputTuple, LiquidityPoolCreatedEvent.OutputObject>;
        "LiquidityProvisionPaused(bool,uint8)": TypedContractEvent<LiquidityProvisionPausedEvent.InputTuple, LiquidityProvisionPausedEvent.OutputTuple, LiquidityProvisionPausedEvent.OutputObject>;
        LiquidityProvisionPaused: TypedContractEvent<LiquidityProvisionPausedEvent.InputTuple, LiquidityProvisionPausedEvent.OutputTuple, LiquidityProvisionPausedEvent.OutputObject>;
        "LiquidityRemoved(uint8,address,uint256,uint256)": TypedContractEvent<LiquidityRemovedEvent.InputTuple, LiquidityRemovedEvent.OutputTuple, LiquidityRemovedEvent.OutputObject>;
        LiquidityRemoved: TypedContractEvent<LiquidityRemovedEvent.InputTuple, LiquidityRemovedEvent.OutputTuple, LiquidityRemovedEvent.OutputObject>;
        "LiquidityWithdrawalInitiated(uint8,address,uint256)": TypedContractEvent<LiquidityWithdrawalInitiatedEvent.InputTuple, LiquidityWithdrawalInitiatedEvent.OutputTuple, LiquidityWithdrawalInitiatedEvent.OutputObject>;
        LiquidityWithdrawalInitiated: TypedContractEvent<LiquidityWithdrawalInitiatedEvent.InputTuple, LiquidityWithdrawalInitiatedEvent.OutputTuple, LiquidityWithdrawalInitiatedEvent.OutputObject>;
        "PerpetualCreated(uint8,uint24,int128[7],int128[5],int128[12],uint256)": TypedContractEvent<PerpetualCreatedEvent.InputTuple, PerpetualCreatedEvent.OutputTuple, PerpetualCreatedEvent.OutputObject>;
        PerpetualCreated: TypedContractEvent<PerpetualCreatedEvent.InputTuple, PerpetualCreatedEvent.OutputTuple, PerpetualCreatedEvent.OutputObject>;
        "PerpetualLimitOrderCancelled(uint24,bytes32)": TypedContractEvent<PerpetualLimitOrderCancelledEvent.InputTuple, PerpetualLimitOrderCancelledEvent.OutputTuple, PerpetualLimitOrderCancelledEvent.OutputObject>;
        PerpetualLimitOrderCancelled: TypedContractEvent<PerpetualLimitOrderCancelledEvent.InputTuple, PerpetualLimitOrderCancelledEvent.OutputTuple, PerpetualLimitOrderCancelledEvent.OutputObject>;
        "RunLiquidityPool(uint8)": TypedContractEvent<RunLiquidityPoolEvent.InputTuple, RunLiquidityPoolEvent.OutputTuple, RunLiquidityPoolEvent.OutputObject>;
        RunLiquidityPool: TypedContractEvent<RunLiquidityPoolEvent.InputTuple, RunLiquidityPoolEvent.OutputTuple, RunLiquidityPoolEvent.OutputObject>;
        "SetBlockDelay(uint8)": TypedContractEvent<SetBlockDelayEvent.InputTuple, SetBlockDelayEvent.OutputTuple, SetBlockDelayEvent.OutputObject>;
        SetBlockDelay: TypedContractEvent<SetBlockDelayEvent.InputTuple, SetBlockDelayEvent.OutputTuple, SetBlockDelayEvent.OutputObject>;
        "SetBrokerDesignations(uint32[],uint16[])": TypedContractEvent<SetBrokerDesignationsEvent.InputTuple, SetBrokerDesignationsEvent.OutputTuple, SetBrokerDesignationsEvent.OutputObject>;
        SetBrokerDesignations: TypedContractEvent<SetBrokerDesignationsEvent.InputTuple, SetBrokerDesignationsEvent.OutputTuple, SetBrokerDesignationsEvent.OutputObject>;
        "SetBrokerTiers(uint256[],uint16[])": TypedContractEvent<SetBrokerTiersEvent.InputTuple, SetBrokerTiersEvent.OutputTuple, SetBrokerTiersEvent.OutputObject>;
        SetBrokerTiers: TypedContractEvent<SetBrokerTiersEvent.InputTuple, SetBrokerTiersEvent.OutputTuple, SetBrokerTiersEvent.OutputObject>;
        "SetBrokerVolumeTiers(uint256[],uint16[])": TypedContractEvent<SetBrokerVolumeTiersEvent.InputTuple, SetBrokerVolumeTiersEvent.OutputTuple, SetBrokerVolumeTiersEvent.OutputObject>;
        SetBrokerVolumeTiers: TypedContractEvent<SetBrokerVolumeTiersEvent.InputTuple, SetBrokerVolumeTiersEvent.OutputTuple, SetBrokerVolumeTiersEvent.OutputObject>;
        "SetClearedState(uint24)": TypedContractEvent<SetClearedStateEvent.InputTuple, SetClearedStateEvent.OutputTuple, SetClearedStateEvent.OutputObject>;
        SetClearedState: TypedContractEvent<SetClearedStateEvent.InputTuple, SetClearedStateEvent.OutputTuple, SetClearedStateEvent.OutputObject>;
        "SetDelegate(address,address,uint256)": TypedContractEvent<SetDelegateEvent.InputTuple, SetDelegateEvent.OutputTuple, SetDelegateEvent.OutputObject>;
        SetDelegate: TypedContractEvent<SetDelegateEvent.InputTuple, SetDelegateEvent.OutputTuple, SetDelegateEvent.OutputObject>;
        "SetEmergencyState(uint24,int128,int128,int128)": TypedContractEvent<SetEmergencyStateEvent.InputTuple, SetEmergencyStateEvent.OutputTuple, SetEmergencyStateEvent.OutputObject>;
        SetEmergencyState: TypedContractEvent<SetEmergencyStateEvent.InputTuple, SetEmergencyStateEvent.OutputTuple, SetEmergencyStateEvent.OutputObject>;
        "SetNormalState(uint24)": TypedContractEvent<SetNormalStateEvent.InputTuple, SetNormalStateEvent.OutputTuple, SetNormalStateEvent.OutputObject>;
        SetNormalState: TypedContractEvent<SetNormalStateEvent.InputTuple, SetNormalStateEvent.OutputTuple, SetNormalStateEvent.OutputObject>;
        "SetOracles(uint24,bytes4[2],bytes4[2])": TypedContractEvent<SetOraclesEvent.InputTuple, SetOraclesEvent.OutputTuple, SetOraclesEvent.OutputObject>;
        SetOracles: TypedContractEvent<SetOraclesEvent.InputTuple, SetOraclesEvent.OutputTuple, SetOraclesEvent.OutputObject>;
        "SetParameter(uint24,string,int128)": TypedContractEvent<SetParameterEvent.InputTuple, SetParameterEvent.OutputTuple, SetParameterEvent.OutputObject>;
        SetParameter: TypedContractEvent<SetParameterEvent.InputTuple, SetParameterEvent.OutputTuple, SetParameterEvent.OutputObject>;
        "SetParameterPair(uint24,string,int128,int128)": TypedContractEvent<SetParameterPairEvent.InputTuple, SetParameterPairEvent.OutputTuple, SetParameterPairEvent.OutputObject>;
        SetParameterPair: TypedContractEvent<SetParameterPairEvent.InputTuple, SetParameterPairEvent.OutputTuple, SetParameterPairEvent.OutputObject>;
        "SetPerpetualBaseParameters(uint24,int128[7])": TypedContractEvent<SetPerpetualBaseParametersEvent.InputTuple, SetPerpetualBaseParametersEvent.OutputTuple, SetPerpetualBaseParametersEvent.OutputObject>;
        SetPerpetualBaseParameters: TypedContractEvent<SetPerpetualBaseParametersEvent.InputTuple, SetPerpetualBaseParametersEvent.OutputTuple, SetPerpetualBaseParametersEvent.OutputObject>;
        "SetPerpetualRiskParameters(uint24,int128[5],int128[12])": TypedContractEvent<SetPerpetualRiskParametersEvent.InputTuple, SetPerpetualRiskParametersEvent.OutputTuple, SetPerpetualRiskParametersEvent.OutputObject>;
        SetPerpetualRiskParameters: TypedContractEvent<SetPerpetualRiskParametersEvent.InputTuple, SetPerpetualRiskParametersEvent.OutputTuple, SetPerpetualRiskParametersEvent.OutputObject>;
        "SetPoolParameter(uint8,string,int128)": TypedContractEvent<SetPoolParameterEvent.InputTuple, SetPoolParameterEvent.OutputTuple, SetPoolParameterEvent.OutputObject>;
        SetPoolParameter: TypedContractEvent<SetPoolParameterEvent.InputTuple, SetPoolParameterEvent.OutputTuple, SetPoolParameterEvent.OutputObject>;
        "SetTraderTiers(uint256[],uint16[])": TypedContractEvent<SetTraderTiersEvent.InputTuple, SetTraderTiersEvent.OutputTuple, SetTraderTiersEvent.OutputObject>;
        SetTraderTiers: TypedContractEvent<SetTraderTiersEvent.InputTuple, SetTraderTiersEvent.OutputTuple, SetTraderTiersEvent.OutputObject>;
        "SetTraderVolumeTiers(uint256[],uint16[])": TypedContractEvent<SetTraderVolumeTiersEvent.InputTuple, SetTraderVolumeTiersEvent.OutputTuple, SetTraderVolumeTiersEvent.OutputObject>;
        SetTraderVolumeTiers: TypedContractEvent<SetTraderVolumeTiersEvent.InputTuple, SetTraderVolumeTiersEvent.OutputTuple, SetTraderVolumeTiersEvent.OutputObject>;
        "SetUtilityToken(address)": TypedContractEvent<SetUtilityTokenEvent.InputTuple, SetUtilityTokenEvent.OutputTuple, SetUtilityTokenEvent.OutputObject>;
        SetUtilityToken: TypedContractEvent<SetUtilityTokenEvent.InputTuple, SetUtilityTokenEvent.OutputTuple, SetUtilityTokenEvent.OutputObject>;
        "Settle(uint24,address,int256)": TypedContractEvent<SettleEvent.InputTuple, SettleEvent.OutputTuple, SettleEvent.OutputObject>;
        Settle: TypedContractEvent<SettleEvent.InputTuple, SettleEvent.OutputTuple, SettleEvent.OutputObject>;
        "SettleState(uint24)": TypedContractEvent<SettleStateEvent.InputTuple, SettleStateEvent.OutputTuple, SettleStateEvent.OutputObject>;
        SettleState: TypedContractEvent<SettleStateEvent.InputTuple, SettleStateEvent.OutputTuple, SettleStateEvent.OutputObject>;
        "SettlementComplete(uint24)": TypedContractEvent<SettlementCompleteEvent.InputTuple, SettlementCompleteEvent.OutputTuple, SettlementCompleteEvent.OutputObject>;
        SettlementComplete: TypedContractEvent<SettlementCompleteEvent.InputTuple, SettlementCompleteEvent.OutputTuple, SettlementCompleteEvent.OutputObject>;
        "TokensDeposited(uint24,address,int128)": TypedContractEvent<TokensDepositedEvent.InputTuple, TokensDepositedEvent.OutputTuple, TokensDepositedEvent.OutputObject>;
        TokensDeposited: TypedContractEvent<TokensDepositedEvent.InputTuple, TokensDepositedEvent.OutputTuple, TokensDepositedEvent.OutputObject>;
        "TokensWithdrawn(uint24,address,int128)": TypedContractEvent<TokensWithdrawnEvent.InputTuple, TokensWithdrawnEvent.OutputTuple, TokensWithdrawnEvent.OutputObject>;
        TokensWithdrawn: TypedContractEvent<TokensWithdrawnEvent.InputTuple, TokensWithdrawnEvent.OutputTuple, TokensWithdrawnEvent.OutputObject>;
        "Trade(uint24,address,tuple,bytes32,int128,int128,int128,int128,int128)": TypedContractEvent<TradeEvent.InputTuple, TradeEvent.OutputTuple, TradeEvent.OutputObject>;
        Trade: TypedContractEvent<TradeEvent.InputTuple, TradeEvent.OutputTuple, TradeEvent.OutputObject>;
        "TransferAddressTo(string,address,address)": TypedContractEvent<TransferAddressToEvent.InputTuple, TransferAddressToEvent.OutputTuple, TransferAddressToEvent.OutputObject>;
        TransferAddressTo: TypedContractEvent<TransferAddressToEvent.InputTuple, TransferAddressToEvent.OutputTuple, TransferAddressToEvent.OutputObject>;
        "UpdateBrokerAddedCash(uint8,uint32,uint32)": TypedContractEvent<UpdateBrokerAddedCashEvent.InputTuple, UpdateBrokerAddedCashEvent.OutputTuple, UpdateBrokerAddedCashEvent.OutputObject>;
        UpdateBrokerAddedCash: TypedContractEvent<UpdateBrokerAddedCashEvent.InputTuple, UpdateBrokerAddedCashEvent.OutputTuple, UpdateBrokerAddedCashEvent.OutputObject>;
        "UpdateFundingRate(uint24,int128)": TypedContractEvent<UpdateFundingRateEvent.InputTuple, UpdateFundingRateEvent.OutputTuple, UpdateFundingRateEvent.OutputObject>;
        UpdateFundingRate: TypedContractEvent<UpdateFundingRateEvent.InputTuple, UpdateFundingRateEvent.OutputTuple, UpdateFundingRateEvent.OutputObject>;
        "UpdateMarginAccount(uint24,address,int128)": TypedContractEvent<UpdateMarginAccountEvent.InputTuple, UpdateMarginAccountEvent.OutputTuple, UpdateMarginAccountEvent.OutputObject>;
        UpdateMarginAccount: TypedContractEvent<UpdateMarginAccountEvent.InputTuple, UpdateMarginAccountEvent.OutputTuple, UpdateMarginAccountEvent.OutputObject>;
        "UpdateMarkPrice(uint24,int128,int128,int128)": TypedContractEvent<UpdateMarkPriceEvent.InputTuple, UpdateMarkPriceEvent.OutputTuple, UpdateMarkPriceEvent.OutputObject>;
        UpdateMarkPrice: TypedContractEvent<UpdateMarkPriceEvent.InputTuple, UpdateMarkPriceEvent.OutputTuple, UpdateMarkPriceEvent.OutputObject>;
    };
}
