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 PoolTogetherV4PrizePoolInterface extends utils.Interface {
    functions: {
        'VERSION()': FunctionFragment;
        'award(address,uint256)': FunctionFragment;
        'awardBalance()': FunctionFragment;
        'awardExternalERC20(address,address,uint256)': FunctionFragment;
        'awardExternalERC721(address,address,uint256[])': FunctionFragment;
        'balance()': FunctionFragment;
        'canAwardExternal(address)': FunctionFragment;
        'captureAwardBalance()': FunctionFragment;
        'claimOwnership()': FunctionFragment;
        'compLikeDelegate(address,address)': FunctionFragment;
        'depositTo(address,uint256)': FunctionFragment;
        'depositToAndDelegate(address,uint256,address)': FunctionFragment;
        'getAccountedBalance()': FunctionFragment;
        'getBalanceCap()': FunctionFragment;
        'getLiquidityCap()': FunctionFragment;
        'getPrizeStrategy()': FunctionFragment;
        'getTicket()': FunctionFragment;
        'getToken()': FunctionFragment;
        'isControlled(address)': FunctionFragment;
        'onERC721Received(address,address,uint256,bytes)': FunctionFragment;
        'owner()': FunctionFragment;
        'pendingOwner()': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'setBalanceCap(uint256)': FunctionFragment;
        'setLiquidityCap(uint256)': FunctionFragment;
        'setPrizeStrategy(address)': FunctionFragment;
        'setTicket(address)': FunctionFragment;
        'sweep()': FunctionFragment;
        'transferExternalERC20(address,address,uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'withdrawFrom(address,uint256)': FunctionFragment;
        'yieldSource()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'VERSION' | 'award' | 'awardBalance' | 'awardExternalERC20' | 'awardExternalERC721' | 'balance' | 'canAwardExternal' | 'captureAwardBalance' | 'claimOwnership' | 'compLikeDelegate' | 'depositTo' | 'depositToAndDelegate' | 'getAccountedBalance' | 'getBalanceCap' | 'getLiquidityCap' | 'getPrizeStrategy' | 'getTicket' | 'getToken' | 'isControlled' | 'onERC721Received' | 'owner' | 'pendingOwner' | 'renounceOwnership' | 'setBalanceCap' | 'setLiquidityCap' | 'setPrizeStrategy' | 'setTicket' | 'sweep' | 'transferExternalERC20' | 'transferOwnership' | 'withdrawFrom' | 'yieldSource'): FunctionFragment;
    encodeFunctionData(functionFragment: 'VERSION', values?: undefined): string;
    encodeFunctionData(functionFragment: 'award', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'awardBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'awardExternalERC20', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'awardExternalERC721', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'balance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'canAwardExternal', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'captureAwardBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'compLikeDelegate', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'depositTo', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToAndDelegate', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAccountedBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getBalanceCap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getLiquidityCap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPrizeStrategy', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTicket', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isControlled', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'onERC721Received', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setBalanceCap', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setLiquidityCap', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setPrizeStrategy', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setTicket', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'sweep', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferExternalERC20', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdrawFrom', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'yieldSource', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'VERSION', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'award', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'awardBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'awardExternalERC20', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'awardExternalERC721', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'canAwardExternal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'captureAwardBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'compLikeDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositTo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToAndDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAccountedBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBalanceCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getLiquidityCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPrizeStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTicket', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isControlled', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'onERC721Received', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBalanceCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLiquidityCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPrizeStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTicket', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sweep', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferExternalERC20', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'yieldSource', data: BytesLike): Result;
    events: {
        'AwardCaptured(uint256)': EventFragment;
        'Awarded(address,address,uint256)': EventFragment;
        'AwardedExternalERC20(address,address,uint256)': EventFragment;
        'AwardedExternalERC721(address,address,uint256[])': EventFragment;
        'BalanceCapSet(uint256)': EventFragment;
        'ControlledTokenAdded(address)': EventFragment;
        'Deployed(address)': EventFragment;
        'Deposited(address,address,address,uint256)': EventFragment;
        'ErrorAwardingExternalERC721(bytes)': EventFragment;
        'LiquidityCapSet(uint256)': EventFragment;
        'OwnershipOffered(address)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'PrizeStrategySet(address)': EventFragment;
        'Swept(uint256)': EventFragment;
        'TicketSet(address)': EventFragment;
        'TransferredExternalERC20(address,address,uint256)': EventFragment;
        'Withdrawal(address,address,address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AwardCaptured'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Awarded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AwardedExternalERC20'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AwardedExternalERC721'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BalanceCapSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ControlledTokenAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deployed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ErrorAwardingExternalERC721'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LiquidityCapSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipOffered'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PrizeStrategySet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Swept'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TicketSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TransferredExternalERC20'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdrawal'): EventFragment;
}
export interface AwardCapturedEventObject {
    amount: BigNumber;
}
export declare type AwardCapturedEvent = TypedEvent<[BigNumber], AwardCapturedEventObject>;
export declare type AwardCapturedEventFilter = TypedEventFilter<AwardCapturedEvent>;
export interface AwardedEventObject {
    winner: string;
    token: string;
    amount: BigNumber;
}
export declare type AwardedEvent = TypedEvent<[string, string, BigNumber], AwardedEventObject>;
export declare type AwardedEventFilter = TypedEventFilter<AwardedEvent>;
export interface AwardedExternalERC20EventObject {
    winner: string;
    token: string;
    amount: BigNumber;
}
export declare type AwardedExternalERC20Event = TypedEvent<[string, string, BigNumber], AwardedExternalERC20EventObject>;
export declare type AwardedExternalERC20EventFilter = TypedEventFilter<AwardedExternalERC20Event>;
export interface AwardedExternalERC721EventObject {
    winner: string;
    token: string;
    tokenIds: BigNumber[];
}
export declare type AwardedExternalERC721Event = TypedEvent<[string, string, BigNumber[]], AwardedExternalERC721EventObject>;
export declare type AwardedExternalERC721EventFilter = TypedEventFilter<AwardedExternalERC721Event>;
export interface BalanceCapSetEventObject {
    balanceCap: BigNumber;
}
export declare type BalanceCapSetEvent = TypedEvent<[BigNumber], BalanceCapSetEventObject>;
export declare type BalanceCapSetEventFilter = TypedEventFilter<BalanceCapSetEvent>;
export interface ControlledTokenAddedEventObject {
    token: string;
}
export declare type ControlledTokenAddedEvent = TypedEvent<[string], ControlledTokenAddedEventObject>;
export declare type ControlledTokenAddedEventFilter = TypedEventFilter<ControlledTokenAddedEvent>;
export interface DeployedEventObject {
    yieldSource: string;
}
export declare type DeployedEvent = TypedEvent<[string], DeployedEventObject>;
export declare type DeployedEventFilter = TypedEventFilter<DeployedEvent>;
export interface DepositedEventObject {
    operator: string;
    to: string;
    token: string;
    amount: BigNumber;
}
export declare type DepositedEvent = TypedEvent<[string, string, string, BigNumber], DepositedEventObject>;
export declare type DepositedEventFilter = TypedEventFilter<DepositedEvent>;
export interface ErrorAwardingExternalERC721EventObject {
    error: string;
}
export declare type ErrorAwardingExternalERC721Event = TypedEvent<[string], ErrorAwardingExternalERC721EventObject>;
export declare type ErrorAwardingExternalERC721EventFilter = TypedEventFilter<ErrorAwardingExternalERC721Event>;
export interface LiquidityCapSetEventObject {
    liquidityCap: BigNumber;
}
export declare type LiquidityCapSetEvent = TypedEvent<[BigNumber], LiquidityCapSetEventObject>;
export declare type LiquidityCapSetEventFilter = TypedEventFilter<LiquidityCapSetEvent>;
export interface OwnershipOfferedEventObject {
    pendingOwner: string;
}
export declare type OwnershipOfferedEvent = TypedEvent<[string], OwnershipOfferedEventObject>;
export declare type OwnershipOfferedEventFilter = TypedEventFilter<OwnershipOfferedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface PrizeStrategySetEventObject {
    prizeStrategy: string;
}
export declare type PrizeStrategySetEvent = TypedEvent<[string], PrizeStrategySetEventObject>;
export declare type PrizeStrategySetEventFilter = TypedEventFilter<PrizeStrategySetEvent>;
export interface SweptEventObject {
    amount: BigNumber;
}
export declare type SweptEvent = TypedEvent<[BigNumber], SweptEventObject>;
export declare type SweptEventFilter = TypedEventFilter<SweptEvent>;
export interface TicketSetEventObject {
    ticket: string;
}
export declare type TicketSetEvent = TypedEvent<[string], TicketSetEventObject>;
export declare type TicketSetEventFilter = TypedEventFilter<TicketSetEvent>;
export interface TransferredExternalERC20EventObject {
    to: string;
    token: string;
    amount: BigNumber;
}
export declare type TransferredExternalERC20Event = TypedEvent<[
    string,
    string,
    BigNumber
], TransferredExternalERC20EventObject>;
export declare type TransferredExternalERC20EventFilter = TypedEventFilter<TransferredExternalERC20Event>;
export interface WithdrawalEventObject {
    operator: string;
    from: string;
    token: string;
    amount: BigNumber;
    redeemed: BigNumber;
}
export declare type WithdrawalEvent = TypedEvent<[string, string, string, BigNumber, BigNumber], WithdrawalEventObject>;
export declare type WithdrawalEventFilter = TypedEventFilter<WithdrawalEvent>;
export interface PoolTogetherV4PrizePool extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: PoolTogetherV4PrizePoolInterface;
    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: {
        VERSION(overrides?: CallOverrides): Promise<[string]>;
        award(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        awardBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        awardExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        awardExternalERC721(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _tokenIds: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balance(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        canAwardExternal(_externalToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        captureAwardBalance(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        compLikeDelegate(_compLike: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositTo(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToAndDelegate(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _delegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getAccountedBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        getBalanceCap(overrides?: CallOverrides): Promise<[BigNumber]>;
        getLiquidityCap(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPrizeStrategy(overrides?: CallOverrides): Promise<[string]>;
        getTicket(overrides?: CallOverrides): Promise<[string]>;
        getToken(overrides?: CallOverrides): Promise<[string]>;
        isControlled(_controlledToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        onERC721Received(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pendingOwner(overrides?: CallOverrides): Promise<[string]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setBalanceCap(_balanceCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLiquidityCap(_liquidityCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPrizeStrategy(_prizeStrategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTicket(_ticket: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sweep(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawFrom(_from: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        yieldSource(overrides?: CallOverrides): Promise<[string]>;
    };
    VERSION(overrides?: CallOverrides): Promise<string>;
    award(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    awardBalance(overrides?: CallOverrides): Promise<BigNumber>;
    awardExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    awardExternalERC721(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _tokenIds: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balance(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    canAwardExternal(_externalToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    captureAwardBalance(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    compLikeDelegate(_compLike: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositTo(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToAndDelegate(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _delegate: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getAccountedBalance(overrides?: CallOverrides): Promise<BigNumber>;
    getBalanceCap(overrides?: CallOverrides): Promise<BigNumber>;
    getLiquidityCap(overrides?: CallOverrides): Promise<BigNumber>;
    getPrizeStrategy(overrides?: CallOverrides): Promise<string>;
    getTicket(overrides?: CallOverrides): Promise<string>;
    getToken(overrides?: CallOverrides): Promise<string>;
    isControlled(_controlledToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    onERC721Received(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    pendingOwner(overrides?: CallOverrides): Promise<string>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setBalanceCap(_balanceCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLiquidityCap(_liquidityCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPrizeStrategy(_prizeStrategy: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTicket(_ticket: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sweep(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawFrom(_from: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    yieldSource(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        VERSION(overrides?: CallOverrides): Promise<string>;
        award(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        awardBalance(overrides?: CallOverrides): Promise<BigNumber>;
        awardExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        awardExternalERC721(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _tokenIds: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        balance(overrides?: CallOverrides): Promise<BigNumber>;
        canAwardExternal(_externalToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        captureAwardBalance(overrides?: CallOverrides): Promise<BigNumber>;
        claimOwnership(overrides?: CallOverrides): Promise<void>;
        compLikeDelegate(_compLike: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        depositTo(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositToAndDelegate(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _delegate: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getAccountedBalance(overrides?: CallOverrides): Promise<BigNumber>;
        getBalanceCap(overrides?: CallOverrides): Promise<BigNumber>;
        getLiquidityCap(overrides?: CallOverrides): Promise<BigNumber>;
        getPrizeStrategy(overrides?: CallOverrides): Promise<string>;
        getTicket(overrides?: CallOverrides): Promise<string>;
        getToken(overrides?: CallOverrides): Promise<string>;
        isControlled(_controlledToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        onERC721Received(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        pendingOwner(overrides?: CallOverrides): Promise<string>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        setBalanceCap(_balanceCap: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        setLiquidityCap(_liquidityCap: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setPrizeStrategy(_prizeStrategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setTicket(_ticket: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        sweep(overrides?: CallOverrides): Promise<void>;
        transferExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        withdrawFrom(_from: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        yieldSource(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'AwardCaptured(uint256)'(amount?: null): AwardCapturedEventFilter;
        AwardCaptured(amount?: null): AwardCapturedEventFilter;
        'Awarded(address,address,uint256)'(winner?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): AwardedEventFilter;
        Awarded(winner?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): AwardedEventFilter;
        'AwardedExternalERC20(address,address,uint256)'(winner?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): AwardedExternalERC20EventFilter;
        AwardedExternalERC20(winner?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): AwardedExternalERC20EventFilter;
        'AwardedExternalERC721(address,address,uint256[])'(winner?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, tokenIds?: null): AwardedExternalERC721EventFilter;
        AwardedExternalERC721(winner?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, tokenIds?: null): AwardedExternalERC721EventFilter;
        'BalanceCapSet(uint256)'(balanceCap?: null): BalanceCapSetEventFilter;
        BalanceCapSet(balanceCap?: null): BalanceCapSetEventFilter;
        'ControlledTokenAdded(address)'(token?: PromiseOrValue<string> | null): ControlledTokenAddedEventFilter;
        ControlledTokenAdded(token?: PromiseOrValue<string> | null): ControlledTokenAddedEventFilter;
        'Deployed(address)'(yieldSource?: PromiseOrValue<string> | null): DeployedEventFilter;
        Deployed(yieldSource?: PromiseOrValue<string> | null): DeployedEventFilter;
        'Deposited(address,address,address,uint256)'(operator?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): DepositedEventFilter;
        Deposited(operator?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): DepositedEventFilter;
        'ErrorAwardingExternalERC721(bytes)'(error?: null): ErrorAwardingExternalERC721EventFilter;
        ErrorAwardingExternalERC721(error?: null): ErrorAwardingExternalERC721EventFilter;
        'LiquidityCapSet(uint256)'(liquidityCap?: null): LiquidityCapSetEventFilter;
        LiquidityCapSet(liquidityCap?: null): LiquidityCapSetEventFilter;
        'OwnershipOffered(address)'(pendingOwner?: PromiseOrValue<string> | null): OwnershipOfferedEventFilter;
        OwnershipOffered(pendingOwner?: PromiseOrValue<string> | null): OwnershipOfferedEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'PrizeStrategySet(address)'(prizeStrategy?: PromiseOrValue<string> | null): PrizeStrategySetEventFilter;
        PrizeStrategySet(prizeStrategy?: PromiseOrValue<string> | null): PrizeStrategySetEventFilter;
        'Swept(uint256)'(amount?: null): SweptEventFilter;
        Swept(amount?: null): SweptEventFilter;
        'TicketSet(address)'(ticket?: PromiseOrValue<string> | null): TicketSetEventFilter;
        TicketSet(ticket?: PromiseOrValue<string> | null): TicketSetEventFilter;
        'TransferredExternalERC20(address,address,uint256)'(to?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): TransferredExternalERC20EventFilter;
        TransferredExternalERC20(to?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): TransferredExternalERC20EventFilter;
        'Withdrawal(address,address,address,uint256,uint256)'(operator?: PromiseOrValue<string> | null, from?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null, redeemed?: null): WithdrawalEventFilter;
        Withdrawal(operator?: PromiseOrValue<string> | null, from?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null, redeemed?: null): WithdrawalEventFilter;
    };
    estimateGas: {
        VERSION(overrides?: CallOverrides): Promise<BigNumber>;
        award(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        awardBalance(overrides?: CallOverrides): Promise<BigNumber>;
        awardExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        awardExternalERC721(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _tokenIds: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balance(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        canAwardExternal(_externalToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        captureAwardBalance(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        compLikeDelegate(_compLike: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositTo(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToAndDelegate(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _delegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getAccountedBalance(overrides?: CallOverrides): Promise<BigNumber>;
        getBalanceCap(overrides?: CallOverrides): Promise<BigNumber>;
        getLiquidityCap(overrides?: CallOverrides): Promise<BigNumber>;
        getPrizeStrategy(overrides?: CallOverrides): Promise<BigNumber>;
        getTicket(overrides?: CallOverrides): Promise<BigNumber>;
        getToken(overrides?: CallOverrides): Promise<BigNumber>;
        isControlled(_controlledToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        onERC721Received(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setBalanceCap(_balanceCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLiquidityCap(_liquidityCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPrizeStrategy(_prizeStrategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTicket(_ticket: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sweep(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawFrom(_from: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        yieldSource(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        VERSION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        award(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        awardBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        awardExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        awardExternalERC721(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _tokenIds: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balance(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        canAwardExternal(_externalToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        captureAwardBalance(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        compLikeDelegate(_compLike: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositTo(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToAndDelegate(_to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _delegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getAccountedBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBalanceCap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLiquidityCap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPrizeStrategy(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTicket(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isControlled(_controlledToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        onERC721Received(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setBalanceCap(_balanceCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLiquidityCap(_liquidityCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPrizeStrategy(_prizeStrategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTicket(_ticket: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sweep(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferExternalERC20(_to: PromiseOrValue<string>, _externalToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawFrom(_from: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        yieldSource(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
