import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface DopexGOhmSsovInterface extends utils.Interface {
    functions: {
        'addToContractWhitelist(address)': FunctionFragment;
        'addresses(bytes32)': FunctionFragment;
        'bootstrap()': FunctionFragment;
        'calculatePnl(uint256,uint256,uint256)': FunctionFragment;
        'calculatePremium(uint256,uint256)': FunctionFragment;
        'calculatePurchaseFees(uint256,uint256,uint256)': FunctionFragment;
        'calculateSettlementFees(uint256,uint256,uint256)': FunctionFragment;
        'currentEpoch()': FunctionFragment;
        'deposit(uint256,uint256,address)': FunctionFragment;
        'depositMultiple(uint256[],uint256[],address)': FunctionFragment;
        'emergencyWithdraw()': FunctionFragment;
        'epochStartTimes(uint256)': FunctionFragment;
        'epochStrikeTokens(uint256,uint256)': FunctionFragment;
        'epochStrikes(uint256,uint256)': FunctionFragment;
        'erc20Implementation()': FunctionFragment;
        'expireDelayTolerance()': FunctionFragment;
        'expireEpoch()': FunctionFragment;
        'expireEpoch(uint256)': FunctionFragment;
        'getAddress(bytes32)': FunctionFragment;
        'getEpochStrikeTokens(uint256)': FunctionFragment;
        'getEpochStrikes(uint256)': FunctionFragment;
        'getEpochTimes(uint256)': FunctionFragment;
        'getMonthlyExpiryFromTimestamp(uint256)': FunctionFragment;
        'getTotalEpochCallsPurchased(uint256)': FunctionFragment;
        'getTotalEpochPremium(uint256)': FunctionFragment;
        'getTotalEpochStrikeDeposits(uint256)': FunctionFragment;
        'getUsdPrice()': FunctionFragment;
        'getUserEpochCallsPurchased(uint256,address)': FunctionFragment;
        'getUserEpochDeposits(uint256,address)': FunctionFragment;
        'getUserEpochPremium(uint256,address)': FunctionFragment;
        'isContract(address)': FunctionFragment;
        'isEpochExpired(uint256)': FunctionFragment;
        'isVaultReady(uint256)': FunctionFragment;
        'owner()': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'purchase(uint256,uint256,address)': FunctionFragment;
        'removeFromContractWhitelist(address)': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'setAddresses(bytes32[],address[])': FunctionFragment;
        'setStrikes(uint256[])': FunctionFragment;
        'settle(uint256,uint256,uint256)': FunctionFragment;
        'settlementPrices(uint256)': FunctionFragment;
        'totalEpochCallsPurchased(uint256,uint256)': FunctionFragment;
        'totalEpochDeposits(uint256)': FunctionFragment;
        'totalEpochPremium(uint256,uint256)': FunctionFragment;
        'totalEpochStrikeDeposits(uint256,uint256)': FunctionFragment;
        'totalEpochStrikeGohmBalance(uint256,uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'unpause()': FunctionFragment;
        'updateExpireDelayTolerance(uint256)': FunctionFragment;
        'userEpochCallsPurchased(uint256,bytes32)': FunctionFragment;
        'userEpochDeposits(uint256,bytes32)': FunctionFragment;
        'userEpochPremium(uint256,bytes32)': FunctionFragment;
        'whitelistedContracts(address)': FunctionFragment;
        'withdraw(uint256,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'addToContractWhitelist' | 'addresses' | 'bootstrap' | 'calculatePnl' | 'calculatePremium' | 'calculatePurchaseFees' | 'calculateSettlementFees' | 'currentEpoch' | 'deposit' | 'depositMultiple' | 'emergencyWithdraw' | 'epochStartTimes' | 'epochStrikeTokens' | 'epochStrikes' | 'erc20Implementation' | 'expireDelayTolerance' | 'expireEpoch()' | 'expireEpoch(uint256)' | 'getAddress' | 'getEpochStrikeTokens' | 'getEpochStrikes' | 'getEpochTimes' | 'getMonthlyExpiryFromTimestamp' | 'getTotalEpochCallsPurchased' | 'getTotalEpochPremium' | 'getTotalEpochStrikeDeposits' | 'getUsdPrice' | 'getUserEpochCallsPurchased' | 'getUserEpochDeposits' | 'getUserEpochPremium' | 'isContract' | 'isEpochExpired' | 'isVaultReady' | 'owner' | 'pause' | 'paused' | 'purchase' | 'removeFromContractWhitelist' | 'renounceOwnership' | 'setAddresses' | 'setStrikes' | 'settle' | 'settlementPrices' | 'totalEpochCallsPurchased' | 'totalEpochDeposits' | 'totalEpochPremium' | 'totalEpochStrikeDeposits' | 'totalEpochStrikeGohmBalance' | 'transferOwnership' | 'unpause' | 'updateExpireDelayTolerance' | 'userEpochCallsPurchased' | 'userEpochDeposits' | 'userEpochPremium' | 'whitelistedContracts' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'addToContractWhitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addresses', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'bootstrap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'calculatePnl', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'calculatePremium', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'calculatePurchaseFees', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'calculateSettlementFees', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'currentEpoch', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'depositMultiple', values: [PromiseOrValue<BigNumberish>[], PromiseOrValue<BigNumberish>[], PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'emergencyWithdraw', values?: undefined): string;
    encodeFunctionData(functionFragment: 'epochStartTimes', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'epochStrikeTokens', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'epochStrikes', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'erc20Implementation', values?: undefined): string;
    encodeFunctionData(functionFragment: 'expireDelayTolerance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'expireEpoch()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'expireEpoch(uint256)', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getAddress', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getEpochStrikeTokens', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getEpochStrikes', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getEpochTimes', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getMonthlyExpiryFromTimestamp', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTotalEpochCallsPurchased', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTotalEpochPremium', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTotalEpochStrikeDeposits', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getUsdPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getUserEpochCallsPurchased', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserEpochDeposits', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserEpochPremium', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isContract', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isEpochExpired', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isVaultReady', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'purchase', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeFromContractWhitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setAddresses', values: [PromiseOrValue<BytesLike>[], PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'setStrikes', values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'settle', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'settlementPrices', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalEpochCallsPurchased', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalEpochDeposits', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalEpochPremium', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalEpochStrikeDeposits', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalEpochStrikeGohmBalance', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateExpireDelayTolerance', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'userEpochCallsPurchased', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'userEpochDeposits', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'userEpochPremium', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'whitelistedContracts', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'addToContractWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addresses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bootstrap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculatePnl', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculatePremium', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculatePurchaseFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculateSettlementFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositMultiple', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergencyWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochStartTimes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochStrikeTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochStrikes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'erc20Implementation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'expireDelayTolerance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'expireEpoch()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'expireEpoch(uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEpochStrikeTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEpochStrikes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEpochTimes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMonthlyExpiryFromTimestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalEpochCallsPurchased', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalEpochPremium', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalEpochStrikeDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUsdPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserEpochCallsPurchased', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserEpochDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserEpochPremium', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isEpochExpired', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isVaultReady', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'purchase', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeFromContractWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAddresses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setStrikes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'settle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'settlementPrices', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEpochCallsPurchased', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEpochDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEpochPremium', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEpochStrikeDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEpochStrikeGohmBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateExpireDelayTolerance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userEpochCallsPurchased', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userEpochDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userEpochPremium', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelistedContracts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'AddToContractWhitelist(address)': EventFragment;
        'AddressSet(bytes32,address)': EventFragment;
        'Bootstrap(uint256)': EventFragment;
        'EmergencyWithdraw(address,uint256)': EventFragment;
        'ExpireDelayToleranceUpdate(uint256)': EventFragment;
        'ExpireEpoch(uint256,uint256)': EventFragment;
        'NewDeposit(uint256,uint256,uint256,address,address)': EventFragment;
        'NewPurchase(uint256,uint256,uint256,uint256,uint256,address,address)': EventFragment;
        'NewSettle(uint256,uint256,address,uint256,uint256)': EventFragment;
        'NewStrike(uint256,uint256)': EventFragment;
        'NewWithdraw(uint256,uint256,address,uint256,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'Paused(address)': EventFragment;
        'RemoveFromContractWhitelist(address)': EventFragment;
        'Unpaused(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AddToContractWhitelist'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AddressSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Bootstrap'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EmergencyWithdraw'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ExpireDelayToleranceUpdate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ExpireEpoch'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewPurchase'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewSettle'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewStrike'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewWithdraw'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RemoveFromContractWhitelist'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
export interface AddToContractWhitelistEventObject {
    _contract: string;
}
export declare type AddToContractWhitelistEvent = TypedEvent<[string], AddToContractWhitelistEventObject>;
export declare type AddToContractWhitelistEventFilter = TypedEventFilter<AddToContractWhitelistEvent>;
export interface AddressSetEventObject {
    name: string;
    destination: string;
}
export declare type AddressSetEvent = TypedEvent<[string, string], AddressSetEventObject>;
export declare type AddressSetEventFilter = TypedEventFilter<AddressSetEvent>;
export interface BootstrapEventObject {
    epoch: BigNumber;
}
export declare type BootstrapEvent = TypedEvent<[BigNumber], BootstrapEventObject>;
export declare type BootstrapEventFilter = TypedEventFilter<BootstrapEvent>;
export interface EmergencyWithdrawEventObject {
    sender: string;
    gohmWithdrawn: BigNumber;
}
export declare type EmergencyWithdrawEvent = TypedEvent<[string, BigNumber], EmergencyWithdrawEventObject>;
export declare type EmergencyWithdrawEventFilter = TypedEventFilter<EmergencyWithdrawEvent>;
export interface ExpireDelayToleranceUpdateEventObject {
    expireDelayTolerance: BigNumber;
}
export declare type ExpireDelayToleranceUpdateEvent = TypedEvent<[BigNumber], ExpireDelayToleranceUpdateEventObject>;
export declare type ExpireDelayToleranceUpdateEventFilter = TypedEventFilter<ExpireDelayToleranceUpdateEvent>;
export interface ExpireEpochEventObject {
    epoch: BigNumber;
    settlementPrice: BigNumber;
}
export declare type ExpireEpochEvent = TypedEvent<[BigNumber, BigNumber], ExpireEpochEventObject>;
export declare type ExpireEpochEventFilter = TypedEventFilter<ExpireEpochEvent>;
export interface NewDepositEventObject {
    epoch: BigNumber;
    strike: BigNumber;
    amount: BigNumber;
    user: string;
    sender: string;
}
export declare type NewDepositEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, string, string], NewDepositEventObject>;
export declare type NewDepositEventFilter = TypedEventFilter<NewDepositEvent>;
export interface NewPurchaseEventObject {
    epoch: BigNumber;
    strike: BigNumber;
    amount: BigNumber;
    premium: BigNumber;
    fee: BigNumber;
    user: string;
    sender: string;
}
export declare type NewPurchaseEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    string,
    string
], NewPurchaseEventObject>;
export declare type NewPurchaseEventFilter = TypedEventFilter<NewPurchaseEvent>;
export interface NewSettleEventObject {
    epoch: BigNumber;
    strike: BigNumber;
    user: string;
    amount: BigNumber;
    pnl: BigNumber;
}
export declare type NewSettleEvent = TypedEvent<[BigNumber, BigNumber, string, BigNumber, BigNumber], NewSettleEventObject>;
export declare type NewSettleEventFilter = TypedEventFilter<NewSettleEvent>;
export interface NewStrikeEventObject {
    epoch: BigNumber;
    strike: BigNumber;
}
export declare type NewStrikeEvent = TypedEvent<[BigNumber, BigNumber], NewStrikeEventObject>;
export declare type NewStrikeEventFilter = TypedEventFilter<NewStrikeEvent>;
export interface NewWithdrawEventObject {
    epoch: BigNumber;
    strike: BigNumber;
    user: string;
    amount: BigNumber;
    gohmAmount: BigNumber;
}
export declare type NewWithdrawEvent = TypedEvent<[BigNumber, BigNumber, string, BigNumber, BigNumber], NewWithdrawEventObject>;
export declare type NewWithdrawEventFilter = TypedEventFilter<NewWithdrawEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RemoveFromContractWhitelistEventObject {
    _contract: string;
}
export declare type RemoveFromContractWhitelistEvent = TypedEvent<[string], RemoveFromContractWhitelistEventObject>;
export declare type RemoveFromContractWhitelistEventFilter = TypedEventFilter<RemoveFromContractWhitelistEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface DopexGOhmSsov extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: DopexGOhmSsovInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        addToContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addresses(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        bootstrap(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        calculatePnl(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        calculatePremium(_strike: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            premium: BigNumber;
        }>;
        calculatePurchaseFees(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        calculateSettlementFees(settlementPrice: PromiseOrValue<BigNumberish>, pnl: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        currentEpoch(overrides?: CallOverrides): Promise<[BigNumber]>;
        deposit(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositMultiple(strikeIndices: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emergencyWithdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        epochStartTimes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        epochStrikeTokens(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        epochStrikes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        erc20Implementation(overrides?: CallOverrides): Promise<[string]>;
        expireDelayTolerance(overrides?: CallOverrides): Promise<[BigNumber]>;
        'expireEpoch()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'expireEpoch(uint256)'(settlementPrice: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getAddress(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getEpochStrikeTokens(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string[]]>;
        getEpochStrikes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getEpochTimes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            start: BigNumber;
            end: BigNumber;
        }>;
        getMonthlyExpiryFromTimestamp(timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getTotalEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getTotalEpochPremium(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getTotalEpochStrikeDeposits(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getUsdPrice(overrides?: CallOverrides): Promise<[BigNumber] & {
            price: BigNumber;
        }>;
        getUserEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getUserEpochDeposits(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getUserEpochPremium(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        isContract(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isEpochExpired(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isVaultReady(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        purchase(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeFromContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAddresses(names: PromiseOrValue<BytesLike>[], destinations: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setStrikes(strikes: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        settle(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, epoch: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        settlementPrices(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEpochDeposits(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEpochStrikeDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEpochStrikeGohmBalance(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateExpireDelayTolerance(_expireDelayTolerance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        userEpochDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        userEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        whitelistedContracts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        withdraw(withdrawEpoch: PromiseOrValue<BigNumberish>, strikeIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    addToContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addresses(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    bootstrap(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    calculatePnl(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    calculatePremium(_strike: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    calculatePurchaseFees(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    calculateSettlementFees(settlementPrice: PromiseOrValue<BigNumberish>, pnl: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    currentEpoch(overrides?: CallOverrides): Promise<BigNumber>;
    deposit(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositMultiple(strikeIndices: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emergencyWithdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    epochStartTimes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    epochStrikeTokens(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    epochStrikes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    erc20Implementation(overrides?: CallOverrides): Promise<string>;
    expireDelayTolerance(overrides?: CallOverrides): Promise<BigNumber>;
    'expireEpoch()'(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'expireEpoch(uint256)'(settlementPrice: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getAddress(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getEpochStrikeTokens(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string[]>;
    getEpochStrikes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    getEpochTimes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        start: BigNumber;
        end: BigNumber;
    }>;
    getMonthlyExpiryFromTimestamp(timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTotalEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    getTotalEpochPremium(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    getTotalEpochStrikeDeposits(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    getUsdPrice(overrides?: CallOverrides): Promise<BigNumber>;
    getUserEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
    getUserEpochDeposits(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
    getUserEpochPremium(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
    isContract(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isEpochExpired(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isVaultReady(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    owner(overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    purchase(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeFromContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAddresses(names: PromiseOrValue<BytesLike>[], destinations: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setStrikes(strikes: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    settle(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, epoch: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    settlementPrices(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalEpochDeposits(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalEpochStrikeDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalEpochStrikeGohmBalance(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateExpireDelayTolerance(_expireDelayTolerance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    userEpochDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    userEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    whitelistedContracts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    withdraw(withdrawEpoch: PromiseOrValue<BigNumberish>, strikeIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        addToContractWhitelist(_contract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        addresses(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        bootstrap(overrides?: CallOverrides): Promise<boolean>;
        calculatePnl(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculatePremium(_strike: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculatePurchaseFees(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculateSettlementFees(settlementPrice: PromiseOrValue<BigNumberish>, pnl: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        currentEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        depositMultiple(strikeIndices: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        emergencyWithdraw(overrides?: CallOverrides): Promise<boolean>;
        epochStartTimes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        epochStrikeTokens(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        epochStrikes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        erc20Implementation(overrides?: CallOverrides): Promise<string>;
        expireDelayTolerance(overrides?: CallOverrides): Promise<BigNumber>;
        'expireEpoch()'(overrides?: CallOverrides): Promise<boolean>;
        'expireEpoch(uint256)'(settlementPrice: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        getAddress(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getEpochStrikeTokens(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string[]>;
        getEpochStrikes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        getEpochTimes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            start: BigNumber;
            end: BigNumber;
        }>;
        getMonthlyExpiryFromTimestamp(timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        getTotalEpochPremium(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        getTotalEpochStrikeDeposits(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        getUsdPrice(overrides?: CallOverrides): Promise<BigNumber>;
        getUserEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
        getUserEpochDeposits(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
        getUserEpochPremium(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
        isContract(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isEpochExpired(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isVaultReady(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        owner(overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<boolean>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        purchase(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        removeFromContractWhitelist(_contract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        setAddresses(names: PromiseOrValue<BytesLike>[], destinations: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<boolean>;
        setStrikes(strikes: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<boolean>;
        settle(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        settlementPrices(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochDeposits(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochStrikeDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochStrikeGohmBalance(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        unpause(overrides?: CallOverrides): Promise<boolean>;
        updateExpireDelayTolerance(_expireDelayTolerance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        userEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        userEpochDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        userEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelistedContracts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        withdraw(withdrawEpoch: PromiseOrValue<BigNumberish>, strikeIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    filters: {
        'AddToContractWhitelist(address)'(_contract?: PromiseOrValue<string> | null): AddToContractWhitelistEventFilter;
        AddToContractWhitelist(_contract?: PromiseOrValue<string> | null): AddToContractWhitelistEventFilter;
        'AddressSet(bytes32,address)'(name?: PromiseOrValue<BytesLike> | null, destination?: PromiseOrValue<string> | null): AddressSetEventFilter;
        AddressSet(name?: PromiseOrValue<BytesLike> | null, destination?: PromiseOrValue<string> | null): AddressSetEventFilter;
        'Bootstrap(uint256)'(epoch?: null): BootstrapEventFilter;
        Bootstrap(epoch?: null): BootstrapEventFilter;
        'EmergencyWithdraw(address,uint256)'(sender?: null, gohmWithdrawn?: null): EmergencyWithdrawEventFilter;
        EmergencyWithdraw(sender?: null, gohmWithdrawn?: null): EmergencyWithdrawEventFilter;
        'ExpireDelayToleranceUpdate(uint256)'(expireDelayTolerance?: null): ExpireDelayToleranceUpdateEventFilter;
        ExpireDelayToleranceUpdate(expireDelayTolerance?: null): ExpireDelayToleranceUpdateEventFilter;
        'ExpireEpoch(uint256,uint256)'(epoch?: null, settlementPrice?: null): ExpireEpochEventFilter;
        ExpireEpoch(epoch?: null, settlementPrice?: null): ExpireEpochEventFilter;
        'NewDeposit(uint256,uint256,uint256,address,address)'(epoch?: null, strike?: null, amount?: null, user?: null, sender?: null): NewDepositEventFilter;
        NewDeposit(epoch?: null, strike?: null, amount?: null, user?: null, sender?: null): NewDepositEventFilter;
        'NewPurchase(uint256,uint256,uint256,uint256,uint256,address,address)'(epoch?: null, strike?: null, amount?: null, premium?: null, fee?: null, user?: null, sender?: null): NewPurchaseEventFilter;
        NewPurchase(epoch?: null, strike?: null, amount?: null, premium?: null, fee?: null, user?: null, sender?: null): NewPurchaseEventFilter;
        'NewSettle(uint256,uint256,address,uint256,uint256)'(epoch?: null, strike?: null, user?: null, amount?: null, pnl?: null): NewSettleEventFilter;
        NewSettle(epoch?: null, strike?: null, user?: null, amount?: null, pnl?: null): NewSettleEventFilter;
        'NewStrike(uint256,uint256)'(epoch?: null, strike?: null): NewStrikeEventFilter;
        NewStrike(epoch?: null, strike?: null): NewStrikeEventFilter;
        'NewWithdraw(uint256,uint256,address,uint256,uint256)'(epoch?: null, strike?: null, user?: null, amount?: null, gohmAmount?: null): NewWithdrawEventFilter;
        NewWithdraw(epoch?: null, strike?: null, user?: null, amount?: null, gohmAmount?: null): NewWithdrawEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'RemoveFromContractWhitelist(address)'(_contract?: PromiseOrValue<string> | null): RemoveFromContractWhitelistEventFilter;
        RemoveFromContractWhitelist(_contract?: PromiseOrValue<string> | null): RemoveFromContractWhitelistEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        addToContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addresses(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        bootstrap(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        calculatePnl(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculatePremium(_strike: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculatePurchaseFees(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculateSettlementFees(settlementPrice: PromiseOrValue<BigNumberish>, pnl: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        currentEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositMultiple(strikeIndices: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emergencyWithdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        epochStartTimes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        epochStrikeTokens(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        epochStrikes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        erc20Implementation(overrides?: CallOverrides): Promise<BigNumber>;
        expireDelayTolerance(overrides?: CallOverrides): Promise<BigNumber>;
        'expireEpoch()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'expireEpoch(uint256)'(settlementPrice: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getAddress(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getEpochStrikeTokens(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getEpochStrikes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getEpochTimes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getMonthlyExpiryFromTimestamp(timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalEpochPremium(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalEpochStrikeDeposits(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUsdPrice(overrides?: CallOverrides): Promise<BigNumber>;
        getUserEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserEpochDeposits(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserEpochPremium(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isContract(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isEpochExpired(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isVaultReady(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        purchase(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeFromContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAddresses(names: PromiseOrValue<BytesLike>[], destinations: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setStrikes(strikes: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        settle(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, epoch: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        settlementPrices(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochDeposits(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochStrikeDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalEpochStrikeGohmBalance(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateExpireDelayTolerance(_expireDelayTolerance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        userEpochDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        userEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelistedContracts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(withdrawEpoch: PromiseOrValue<BigNumberish>, strikeIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        addToContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addresses(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bootstrap(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        calculatePnl(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculatePremium(_strike: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculatePurchaseFees(price: PromiseOrValue<BigNumberish>, strike: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateSettlementFees(settlementPrice: PromiseOrValue<BigNumberish>, pnl: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentEpoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositMultiple(strikeIndices: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emergencyWithdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        epochStartTimes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochStrikeTokens(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochStrikes(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        erc20Implementation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        expireDelayTolerance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'expireEpoch()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'expireEpoch(uint256)'(settlementPrice: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getAddress(name: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEpochStrikeTokens(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEpochStrikes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEpochTimes(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMonthlyExpiryFromTimestamp(timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalEpochPremium(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalEpochStrikeDeposits(epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUsdPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserEpochCallsPurchased(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserEpochDeposits(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserEpochPremium(epoch: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isContract(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isEpochExpired(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isVaultReady(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        purchase(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeFromContractWhitelist(_contract: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAddresses(names: PromiseOrValue<BytesLike>[], destinations: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setStrikes(strikes: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        settle(strikeIndex: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, epoch: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        settlementPrices(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEpochDeposits(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEpochStrikeDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEpochStrikeGohmBalance(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateExpireDelayTolerance(_expireDelayTolerance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userEpochCallsPurchased(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        userEpochDeposits(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        userEpochPremium(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelistedContracts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(withdrawEpoch: PromiseOrValue<BigNumberish>, strikeIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
