import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, 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 declare namespace ICaskVault {
    type FundingProfileStruct = {
        fundingSource: PromiseOrValue<BigNumberish>;
        fundingAsset: PromiseOrValue<string>;
    };
    type FundingProfileStructOutput = [number, string] & {
        fundingSource: number;
        fundingAsset: string;
    };
    type AssetStruct = {
        priceFeed: PromiseOrValue<string>;
        slippageBps: PromiseOrValue<BigNumberish>;
        depositLimit: PromiseOrValue<BigNumberish>;
        assetDecimals: PromiseOrValue<BigNumberish>;
        priceFeedDecimals: PromiseOrValue<BigNumberish>;
        allowed: PromiseOrValue<boolean>;
    };
    type AssetStructOutput = [string, BigNumber, BigNumber, number, number, boolean] & {
        priceFeed: string;
        slippageBps: BigNumber;
        depositLimit: BigNumber;
        assetDecimals: number;
        priceFeedDecimals: number;
        allowed: boolean;
    };
}
export interface CaskVaultTokenInterface extends utils.Interface {
    functions: {
        'admin()': FunctionFragment;
        'changeAdmin(address)': FunctionFragment;
        'implementation()': FunctionFragment;
        'upgradeTo(address)': FunctionFragment;
        'upgradeToAndCall(address,bytes)': FunctionFragment;
        'addProtocol(address)': FunctionFragment;
        'allowAsset(address,address,uint256,uint256)': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'baseAsset()': FunctionFragment;
        'convertPrice(address,address,uint256)': FunctionFragment;
        'currentValueOf(address)': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'deposit(address,uint256)': FunctionFragment;
        'depositTo(address,address,uint256)': FunctionFragment;
        'disallowAsset(address)': FunctionFragment;
        'feeDistributor()': FunctionFragment;
        'fundingSource(address)': FunctionFragment;
        'getAllAssets()': FunctionFragment;
        'getAsset(address)': FunctionFragment;
        'getBaseAsset()': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'initialize(address,address,address)': FunctionFragment;
        'isTrustedForwarder(address)': FunctionFragment;
        'maxPriceFeedAge()': FunctionFragment;
        'minDeposit()': FunctionFragment;
        'name()': FunctionFragment;
        'owner()': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'pricePerShare()': FunctionFragment;
        'protocolCount()': FunctionFragment;
        'protocolPayment(address,address,uint256,uint256,address,uint256)': FunctionFragment;
        'protocolPayment(address,address,uint256)': FunctionFragment;
        'protocolPayment(address,address,uint256,uint256)': FunctionFragment;
        'protocols(uint256)': FunctionFragment;
        'removeProtocol(address)': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'reserved1()': FunctionFragment;
        'setFeeDistributor(address)': FunctionFragment;
        'setFundingSource(uint8,address)': FunctionFragment;
        'setMaxPriceFeedAge(uint256)': FunctionFragment;
        'setMinDeposit(uint256)': FunctionFragment;
        'setTrustedForwarder(address)': FunctionFragment;
        'sharesForValue(uint256)': FunctionFragment;
        'supportsAsset(address)': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalAssetBalance(address)': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'totalValue()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'transferValue(address,uint256)': FunctionFragment;
        'transferValueFrom(address,address,uint256)': FunctionFragment;
        'trustedForwarder()': FunctionFragment;
        'unpause()': FunctionFragment;
        'versionRecipient()': FunctionFragment;
        'withdraw(address,uint256)': FunctionFragment;
        'withdrawTo(address,address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'admin' | 'changeAdmin' | 'implementation' | 'upgradeTo' | 'upgradeToAndCall' | 'addProtocol' | 'allowAsset' | 'allowance' | 'approve' | 'balanceOf' | 'baseAsset' | 'convertPrice' | 'currentValueOf' | 'decimals' | 'decreaseAllowance' | 'deposit' | 'depositTo' | 'disallowAsset' | 'feeDistributor' | 'fundingSource' | 'getAllAssets' | 'getAsset' | 'getBaseAsset' | 'increaseAllowance' | 'initialize' | 'isTrustedForwarder' | 'maxPriceFeedAge' | 'minDeposit' | 'name' | 'owner' | 'pause' | 'paused' | 'pricePerShare' | 'protocolCount' | 'protocolPayment(address,address,uint256,uint256,address,uint256)' | 'protocolPayment(address,address,uint256)' | 'protocolPayment(address,address,uint256,uint256)' | 'protocols' | 'removeProtocol' | 'renounceOwnership' | 'reserved1' | 'setFeeDistributor' | 'setFundingSource' | 'setMaxPriceFeedAge' | 'setMinDeposit' | 'setTrustedForwarder' | 'sharesForValue' | 'supportsAsset' | 'symbol' | 'totalAssetBalance' | 'totalSupply' | 'totalValue' | 'transfer' | 'transferFrom' | 'transferOwnership' | 'transferValue' | 'transferValueFrom' | 'trustedForwarder' | 'unpause' | 'versionRecipient' | 'withdraw' | 'withdrawTo'): FunctionFragment;
    encodeFunctionData(functionFragment: 'admin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'changeAdmin', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'implementation', values?: undefined): string;
    encodeFunctionData(functionFragment: 'upgradeTo', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'upgradeToAndCall', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'addProtocol', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'allowAsset', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'baseAsset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'convertPrice', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'currentValueOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositTo', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'disallowAsset', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'feeDistributor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fundingSource', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAllAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getAsset', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getBaseAsset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isTrustedForwarder', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxPriceFeedAge', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minDeposit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pricePerShare', values?: undefined): string;
    encodeFunctionData(functionFragment: 'protocolCount', values?: undefined): string;
    encodeFunctionData(functionFragment: 'protocolPayment(address,address,uint256,uint256,address,uint256)', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'protocolPayment(address,address,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'protocolPayment(address,address,uint256,uint256)', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'protocols', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'removeProtocol', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'reserved1', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setFeeDistributor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFundingSource', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setMaxPriceFeedAge', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setMinDeposit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setTrustedForwarder', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'sharesForValue', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'supportsAsset', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalAssetBalance', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalValue', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'transferValue', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferValueFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'trustedForwarder', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'versionRecipient', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawTo', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'admin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'changeAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'implementation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgradeTo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgradeToAndCall', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addProtocol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'baseAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'convertPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentValueOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositTo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disallowAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeDistributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundingSource', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAllAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBaseAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isTrustedForwarder', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxPriceFeedAge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pricePerShare', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'protocolCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'protocolPayment(address,address,uint256,uint256,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'protocolPayment(address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'protocolPayment(address,address,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'protocols', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeProtocol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'reserved1', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeDistributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFundingSource', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxPriceFeedAge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMinDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTrustedForwarder', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sharesForValue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAssetBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalValue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferValue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferValueFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'trustedForwarder', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'versionRecipient', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawTo', data: BytesLike): Result;
    events: {
        'AdminChanged(address,address)': EventFragment;
        'Upgraded(address)': EventFragment;
        'AddProtocol(address)': EventFragment;
        'AllowedAsset(address)': EventFragment;
        'Approval(address,address,uint256)': EventFragment;
        'AssetDeposited(address,address,uint256,uint256,uint256)': EventFragment;
        'AssetWithdrawn(address,address,uint256,uint256,uint256)': EventFragment;
        'DisallowedAsset(address)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'Paused(address)': EventFragment;
        'Payment(address,address,uint256,uint256,uint256,uint256,address,uint256,uint256)': EventFragment;
        'RemoveProtocol(address)': EventFragment;
        'SetFeeDistributor(address)': EventFragment;
        'SetFundingSource(address,uint8,address)': EventFragment;
        'SetMaxPriceFeedAge(uint256)': EventFragment;
        'SetMinDeposit(uint256)': EventFragment;
        'SetTrustedForwarder(address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'TransferValue(address,address,uint256,uint256)': EventFragment;
        'Unpaused(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Upgraded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AddProtocol'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AllowedAsset'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssetDeposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssetWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DisallowedAsset'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Payment'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RemoveProtocol'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetFeeDistributor'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetFundingSource'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetMaxPriceFeedAge'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetMinDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SetTrustedForwarder'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TransferValue'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
export interface AdminChangedEventObject {
    previousAdmin: string;
    newAdmin: string;
}
export declare type AdminChangedEvent = TypedEvent<[string, string], AdminChangedEventObject>;
export declare type AdminChangedEventFilter = TypedEventFilter<AdminChangedEvent>;
export interface UpgradedEventObject {
    implementation: string;
}
export declare type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>;
export declare type UpgradedEventFilter = TypedEventFilter<UpgradedEvent>;
export interface AddProtocolEventObject {
    protocol: string;
}
export declare type AddProtocolEvent = TypedEvent<[string], AddProtocolEventObject>;
export declare type AddProtocolEventFilter = TypedEventFilter<AddProtocolEvent>;
export interface AllowedAssetEventObject {
    asset: string;
}
export declare type AllowedAssetEvent = TypedEvent<[string], AllowedAssetEventObject>;
export declare type AllowedAssetEventFilter = TypedEventFilter<AllowedAssetEvent>;
export interface ApprovalEventObject {
    owner: string;
    spender: string;
    value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface AssetDepositedEventObject {
    participant: string;
    asset: string;
    assetAmount: BigNumber;
    baseAssetAmount: BigNumber;
    shares: BigNumber;
}
export declare type AssetDepositedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], AssetDepositedEventObject>;
export declare type AssetDepositedEventFilter = TypedEventFilter<AssetDepositedEvent>;
export interface AssetWithdrawnEventObject {
    participant: string;
    asset: string;
    assetAmount: BigNumber;
    baseAssetAmount: BigNumber;
    shares: BigNumber;
}
export declare type AssetWithdrawnEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], AssetWithdrawnEventObject>;
export declare type AssetWithdrawnEventFilter = TypedEventFilter<AssetWithdrawnEvent>;
export interface DisallowedAssetEventObject {
    asset: string;
}
export declare type DisallowedAssetEvent = TypedEvent<[string], DisallowedAssetEventObject>;
export declare type DisallowedAssetEventFilter = TypedEventFilter<DisallowedAssetEvent>;
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 PaymentEventObject {
    from: string;
    to: string;
    baseAssetAmount: BigNumber;
    shares: BigNumber;
    protocolFee: BigNumber;
    protocolFeeShares: BigNumber;
    network: string;
    networkFee: BigNumber;
    networkFeeShares: BigNumber;
}
export declare type PaymentEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    string,
    BigNumber,
    BigNumber
], PaymentEventObject>;
export declare type PaymentEventFilter = TypedEventFilter<PaymentEvent>;
export interface RemoveProtocolEventObject {
    protocol: string;
}
export declare type RemoveProtocolEvent = TypedEvent<[string], RemoveProtocolEventObject>;
export declare type RemoveProtocolEventFilter = TypedEventFilter<RemoveProtocolEvent>;
export interface SetFeeDistributorEventObject {
    feeDistributor: string;
}
export declare type SetFeeDistributorEvent = TypedEvent<[string], SetFeeDistributorEventObject>;
export declare type SetFeeDistributorEventFilter = TypedEventFilter<SetFeeDistributorEvent>;
export interface SetFundingSourceEventObject {
    participant: string;
    fundingSource: number;
    fundingAsset: string;
}
export declare type SetFundingSourceEvent = TypedEvent<[string, number, string], SetFundingSourceEventObject>;
export declare type SetFundingSourceEventFilter = TypedEventFilter<SetFundingSourceEvent>;
export interface SetMaxPriceFeedAgeEventObject {
    maxPriceFeedAge: BigNumber;
}
export declare type SetMaxPriceFeedAgeEvent = TypedEvent<[BigNumber], SetMaxPriceFeedAgeEventObject>;
export declare type SetMaxPriceFeedAgeEventFilter = TypedEventFilter<SetMaxPriceFeedAgeEvent>;
export interface SetMinDepositEventObject {
    minDeposit: BigNumber;
}
export declare type SetMinDepositEvent = TypedEvent<[BigNumber], SetMinDepositEventObject>;
export declare type SetMinDepositEventFilter = TypedEventFilter<SetMinDepositEvent>;
export interface SetTrustedForwarderEventObject {
    feeDistributor: string;
}
export declare type SetTrustedForwarderEvent = TypedEvent<[string], SetTrustedForwarderEventObject>;
export declare type SetTrustedForwarderEventFilter = TypedEventFilter<SetTrustedForwarderEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface TransferValueEventObject {
    from: string;
    to: string;
    baseAssetAmount: BigNumber;
    shares: BigNumber;
}
export declare type TransferValueEvent = TypedEvent<[string, string, BigNumber, BigNumber], TransferValueEventObject>;
export declare type TransferValueEventFilter = TypedEventFilter<TransferValueEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface CaskVaultToken extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: CaskVaultTokenInterface;
    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: {
        admin(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changeAdmin(newAdmin: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        implementation(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowAsset(_asset: PromiseOrValue<string>, _priceFeed: PromiseOrValue<string>, _depositLimit: PromiseOrValue<BigNumberish>, _slippageBps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        baseAsset(overrides?: CallOverrides): Promise<[string]>;
        convertPrice(_fromAsset: PromiseOrValue<string>, _toAsset: PromiseOrValue<string>, _fromAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        currentValueOf(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(_asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositTo(_to: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        disallowAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        feeDistributor(overrides?: CallOverrides): Promise<[string]>;
        fundingSource(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[ICaskVault.FundingProfileStructOutput]>;
        getAllAssets(overrides?: CallOverrides): Promise<[string[]]>;
        getAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[ICaskVault.AssetStructOutput]>;
        getBaseAsset(overrides?: CallOverrides): Promise<[string]>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_baseAsset: PromiseOrValue<string>, _baseAssetPriceFeed: PromiseOrValue<string>, _feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isTrustedForwarder(forwarder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        maxPriceFeedAge(overrides?: CallOverrides): Promise<[BigNumber]>;
        minDeposit(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        pricePerShare(overrides?: CallOverrides): Promise<[BigNumber]>;
        protocolCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        'protocolPayment(address,address,uint256,uint256,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, _network: PromiseOrValue<string>, _networkFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'protocolPayment(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'protocolPayment(address,address,uint256,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        protocols(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        removeProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        reserved1(overrides?: CallOverrides): Promise<[string]>;
        setFeeDistributor(_feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFundingSource(_fundingSource: PromiseOrValue<BigNumberish>, _fundingAsset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxPriceFeedAge(_maxPriceFeedAge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMinDeposit(_minDeposit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTrustedForwarder(_forwarder: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sharesForValue(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        supportsAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        totalAssetBalance(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalValue(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferValue(_recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferValueFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        trustedForwarder(overrides?: CallOverrides): Promise<[string]>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        versionRecipient(overrides?: CallOverrides): Promise<[string]>;
        withdraw(_asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawTo(_recipient: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    admin(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changeAdmin(newAdmin: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    implementation(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowAsset(_asset: PromiseOrValue<string>, _priceFeed: PromiseOrValue<string>, _depositLimit: PromiseOrValue<BigNumberish>, _slippageBps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    baseAsset(overrides?: CallOverrides): Promise<string>;
    convertPrice(_fromAsset: PromiseOrValue<string>, _toAsset: PromiseOrValue<string>, _fromAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    currentValueOf(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(_asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositTo(_to: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    disallowAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    feeDistributor(overrides?: CallOverrides): Promise<string>;
    fundingSource(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<ICaskVault.FundingProfileStructOutput>;
    getAllAssets(overrides?: CallOverrides): Promise<string[]>;
    getAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<ICaskVault.AssetStructOutput>;
    getBaseAsset(overrides?: CallOverrides): Promise<string>;
    increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_baseAsset: PromiseOrValue<string>, _baseAssetPriceFeed: PromiseOrValue<string>, _feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isTrustedForwarder(forwarder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    maxPriceFeedAge(overrides?: CallOverrides): Promise<BigNumber>;
    minDeposit(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    pricePerShare(overrides?: CallOverrides): Promise<BigNumber>;
    protocolCount(overrides?: CallOverrides): Promise<BigNumber>;
    'protocolPayment(address,address,uint256,uint256,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, _network: PromiseOrValue<string>, _networkFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'protocolPayment(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'protocolPayment(address,address,uint256,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    protocols(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    removeProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    reserved1(overrides?: CallOverrides): Promise<string>;
    setFeeDistributor(_feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFundingSource(_fundingSource: PromiseOrValue<BigNumberish>, _fundingAsset: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxPriceFeedAge(_maxPriceFeedAge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMinDeposit(_minDeposit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTrustedForwarder(_forwarder: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sharesForValue(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    supportsAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalAssetBalance(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    totalValue(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferValue(_recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferValueFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    trustedForwarder(overrides?: CallOverrides): Promise<string>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    versionRecipient(overrides?: CallOverrides): Promise<string>;
    withdraw(_asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawTo(_recipient: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        admin(overrides?: CallOverrides): Promise<string>;
        changeAdmin(newAdmin: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        implementation(overrides?: CallOverrides): Promise<string>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        addProtocol(_protocol: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        allowAsset(_asset: PromiseOrValue<string>, _priceFeed: PromiseOrValue<string>, _depositLimit: PromiseOrValue<BigNumberish>, _slippageBps: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        baseAsset(overrides?: CallOverrides): Promise<string>;
        convertPrice(_fromAsset: PromiseOrValue<string>, _toAsset: PromiseOrValue<string>, _fromAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        currentValueOf(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        deposit(_asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositTo(_to: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        disallowAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        feeDistributor(overrides?: CallOverrides): Promise<string>;
        fundingSource(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<ICaskVault.FundingProfileStructOutput>;
        getAllAssets(overrides?: CallOverrides): Promise<string[]>;
        getAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<ICaskVault.AssetStructOutput>;
        getBaseAsset(overrides?: CallOverrides): Promise<string>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        initialize(_baseAsset: PromiseOrValue<string>, _baseAssetPriceFeed: PromiseOrValue<string>, _feeDistributor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isTrustedForwarder(forwarder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        maxPriceFeedAge(overrides?: CallOverrides): Promise<BigNumber>;
        minDeposit(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        pricePerShare(overrides?: CallOverrides): Promise<BigNumber>;
        protocolCount(overrides?: CallOverrides): Promise<BigNumber>;
        'protocolPayment(address,address,uint256,uint256,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, _network: PromiseOrValue<string>, _networkFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'protocolPayment(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'protocolPayment(address,address,uint256,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        protocols(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        removeProtocol(_protocol: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        reserved1(overrides?: CallOverrides): Promise<string>;
        setFeeDistributor(_feeDistributor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFundingSource(_fundingSource: PromiseOrValue<BigNumberish>, _fundingAsset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setMaxPriceFeedAge(_maxPriceFeedAge: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMinDeposit(_minDeposit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setTrustedForwarder(_forwarder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        sharesForValue(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        supportsAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalAssetBalance(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalValue(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        transferValue(_recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferValueFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        trustedForwarder(overrides?: CallOverrides): Promise<string>;
        unpause(overrides?: CallOverrides): Promise<void>;
        versionRecipient(overrides?: CallOverrides): Promise<string>;
        withdraw(_asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        withdrawTo(_recipient: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'AdminChanged(address,address)'(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        AdminChanged(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        'Upgraded(address)'(implementation?: PromiseOrValue<string> | null): UpgradedEventFilter;
        Upgraded(implementation?: PromiseOrValue<string> | null): UpgradedEventFilter;
        'AddProtocol(address)'(protocol?: PromiseOrValue<string> | null): AddProtocolEventFilter;
        AddProtocol(protocol?: PromiseOrValue<string> | null): AddProtocolEventFilter;
        'AllowedAsset(address)'(asset?: PromiseOrValue<string> | null): AllowedAssetEventFilter;
        AllowedAsset(asset?: PromiseOrValue<string> | null): AllowedAssetEventFilter;
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'AssetDeposited(address,address,uint256,uint256,uint256)'(participant?: PromiseOrValue<string> | null, asset?: PromiseOrValue<string> | null, assetAmount?: null, baseAssetAmount?: null, shares?: null): AssetDepositedEventFilter;
        AssetDeposited(participant?: PromiseOrValue<string> | null, asset?: PromiseOrValue<string> | null, assetAmount?: null, baseAssetAmount?: null, shares?: null): AssetDepositedEventFilter;
        'AssetWithdrawn(address,address,uint256,uint256,uint256)'(participant?: PromiseOrValue<string> | null, asset?: PromiseOrValue<string> | null, assetAmount?: null, baseAssetAmount?: null, shares?: null): AssetWithdrawnEventFilter;
        AssetWithdrawn(participant?: PromiseOrValue<string> | null, asset?: PromiseOrValue<string> | null, assetAmount?: null, baseAssetAmount?: null, shares?: null): AssetWithdrawnEventFilter;
        'DisallowedAsset(address)'(asset?: PromiseOrValue<string> | null): DisallowedAssetEventFilter;
        DisallowedAsset(asset?: PromiseOrValue<string> | null): DisallowedAssetEventFilter;
        '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;
        'Payment(address,address,uint256,uint256,uint256,uint256,address,uint256,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, baseAssetAmount?: null, shares?: null, protocolFee?: null, protocolFeeShares?: null, network?: PromiseOrValue<string> | null, networkFee?: null, networkFeeShares?: null): PaymentEventFilter;
        Payment(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, baseAssetAmount?: null, shares?: null, protocolFee?: null, protocolFeeShares?: null, network?: PromiseOrValue<string> | null, networkFee?: null, networkFeeShares?: null): PaymentEventFilter;
        'RemoveProtocol(address)'(protocol?: PromiseOrValue<string> | null): RemoveProtocolEventFilter;
        RemoveProtocol(protocol?: PromiseOrValue<string> | null): RemoveProtocolEventFilter;
        'SetFeeDistributor(address)'(feeDistributor?: PromiseOrValue<string> | null): SetFeeDistributorEventFilter;
        SetFeeDistributor(feeDistributor?: PromiseOrValue<string> | null): SetFeeDistributorEventFilter;
        'SetFundingSource(address,uint8,address)'(participant?: PromiseOrValue<string> | null, fundingSource?: null, fundingAsset?: null): SetFundingSourceEventFilter;
        SetFundingSource(participant?: PromiseOrValue<string> | null, fundingSource?: null, fundingAsset?: null): SetFundingSourceEventFilter;
        'SetMaxPriceFeedAge(uint256)'(maxPriceFeedAge?: null): SetMaxPriceFeedAgeEventFilter;
        SetMaxPriceFeedAge(maxPriceFeedAge?: null): SetMaxPriceFeedAgeEventFilter;
        'SetMinDeposit(uint256)'(minDeposit?: null): SetMinDepositEventFilter;
        SetMinDeposit(minDeposit?: null): SetMinDepositEventFilter;
        'SetTrustedForwarder(address)'(feeDistributor?: PromiseOrValue<string> | null): SetTrustedForwarderEventFilter;
        SetTrustedForwarder(feeDistributor?: PromiseOrValue<string> | null): SetTrustedForwarderEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        'TransferValue(address,address,uint256,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, baseAssetAmount?: null, shares?: null): TransferValueEventFilter;
        TransferValue(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, baseAssetAmount?: null, shares?: null): TransferValueEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        admin(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changeAdmin(newAdmin: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        implementation(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowAsset(_asset: PromiseOrValue<string>, _priceFeed: PromiseOrValue<string>, _depositLimit: PromiseOrValue<BigNumberish>, _slippageBps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        baseAsset(overrides?: CallOverrides): Promise<BigNumber>;
        convertPrice(_fromAsset: PromiseOrValue<string>, _toAsset: PromiseOrValue<string>, _fromAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        currentValueOf(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(_asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositTo(_to: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        disallowAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        feeDistributor(overrides?: CallOverrides): Promise<BigNumber>;
        fundingSource(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAllAssets(overrides?: CallOverrides): Promise<BigNumber>;
        getAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getBaseAsset(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_baseAsset: PromiseOrValue<string>, _baseAssetPriceFeed: PromiseOrValue<string>, _feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isTrustedForwarder(forwarder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxPriceFeedAge(overrides?: CallOverrides): Promise<BigNumber>;
        minDeposit(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        pricePerShare(overrides?: CallOverrides): Promise<BigNumber>;
        protocolCount(overrides?: CallOverrides): Promise<BigNumber>;
        'protocolPayment(address,address,uint256,uint256,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, _network: PromiseOrValue<string>, _networkFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'protocolPayment(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'protocolPayment(address,address,uint256,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        protocols(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        removeProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        reserved1(overrides?: CallOverrides): Promise<BigNumber>;
        setFeeDistributor(_feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFundingSource(_fundingSource: PromiseOrValue<BigNumberish>, _fundingAsset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxPriceFeedAge(_maxPriceFeedAge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMinDeposit(_minDeposit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTrustedForwarder(_forwarder: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sharesForValue(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        supportsAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalAssetBalance(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalValue(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferValue(_recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferValueFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        trustedForwarder(overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        versionRecipient(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawTo(_recipient: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        admin(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changeAdmin(newAdmin: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        implementation(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowAsset(_asset: PromiseOrValue<string>, _priceFeed: PromiseOrValue<string>, _depositLimit: PromiseOrValue<BigNumberish>, _slippageBps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        baseAsset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convertPrice(_fromAsset: PromiseOrValue<string>, _toAsset: PromiseOrValue<string>, _fromAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentValueOf(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(_asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositTo(_to: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _assetAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        disallowAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        feeDistributor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fundingSource(_address: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBaseAsset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_baseAsset: PromiseOrValue<string>, _baseAssetPriceFeed: PromiseOrValue<string>, _feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isTrustedForwarder(forwarder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxPriceFeedAge(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minDeposit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pricePerShare(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        protocolCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'protocolPayment(address,address,uint256,uint256,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, _network: PromiseOrValue<string>, _networkFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'protocolPayment(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'protocolPayment(address,address,uint256,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _protocolFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        protocols(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeProtocol(_protocol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        reserved1(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setFeeDistributor(_feeDistributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFundingSource(_fundingSource: PromiseOrValue<BigNumberish>, _fundingAsset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxPriceFeedAge(_maxPriceFeedAge: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMinDeposit(_minDeposit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTrustedForwarder(_forwarder: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sharesForValue(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        supportsAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalAssetBalance(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalValue(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferValue(_recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferValueFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        trustedForwarder(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        versionRecipient(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(_asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawTo(_recipient: PromiseOrValue<string>, _asset: PromiseOrValue<string>, _shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
