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 declare namespace ICustomBill { type BillStruct = { payout: PromiseOrValue; payoutClaimed: PromiseOrValue; vesting: PromiseOrValue; vestingTerm: PromiseOrValue; vestingStartTimestamp: PromiseOrValue; lastClaimTimestamp: PromiseOrValue; truePricePaid: PromiseOrValue; }; type BillStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { payout: BigNumber; payoutClaimed: BigNumber; vesting: BigNumber; vestingTerm: BigNumber; vestingStartTimestamp: BigNumber; lastClaimTimestamp: BigNumber; truePricePaid: BigNumber; }; } export interface BondInterface extends utils.Interface { functions: { 'DAO()': FunctionFragment; 'adjustment()': FunctionFragment; 'batchRedeem(uint256[])': FunctionFragment; 'billInfo(uint256)': FunctionFragment; 'billNft()': FunctionFragment; 'billPrice()': FunctionFragment; 'changeTreasury(address)': FunctionFragment; 'currentDebt()': FunctionFragment; 'currentFee()': FunctionFragment; 'customTreasury()': FunctionFragment; 'debtDecay()': FunctionFragment; 'debtRatio()': FunctionFragment; 'deposit(uint256,uint256,address)': FunctionFragment; 'getBillIds(address)': FunctionFragment; 'getBillIdsInRange(address,uint256,uint256)': FunctionFragment; 'initialize(address[7],uint256[],uint256[],bool)': FunctionFragment; 'initializeBill(uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment; 'lastDecay()': FunctionFragment; 'maxPayout()': FunctionFragment; 'paySubsidy()': FunctionFragment; 'payoutFor(uint256)': FunctionFragment; 'payoutSinceLastSubsidy()': FunctionFragment; 'payoutToken()': FunctionFragment; 'pendingPayoutFor(uint256)': FunctionFragment; 'percentVestedFor(uint256)': FunctionFragment; 'policy()': FunctionFragment; 'principalToken()': FunctionFragment; 'pullPolicy()': FunctionFragment; 'pushPolicy(address)': FunctionFragment; 'redeem(uint256)': FunctionFragment; 'renouncePolicy()': FunctionFragment; 'setAdjustment(bool,uint256,uint256,uint256)': FunctionFragment; 'setBillTerms(uint8,uint256)': FunctionFragment; 'subsidyRouter()': FunctionFragment; 'terms()': FunctionFragment; 'totalDebt()': FunctionFragment; 'totalPayoutGiven()': FunctionFragment; 'totalPrincipalBilled()': FunctionFragment; 'treasury()': FunctionFragment; 'trueBillPrice()': FunctionFragment; 'userBillIds()': FunctionFragment; 'maxTotalPayout()': FunctionFragment; 'getMaxTotalPayout()': FunctionFragment; 'pendingPayout(uint256)': FunctionFragment; 'pendingVesting(uint256)': FunctionFragment; 'getBillInfo(uint256)': FunctionFragment; 'claimablePayout(uint256)': FunctionFragment; }; getFunction(nameOrSignatureOrTopic: 'DAO' | 'adjustment' | 'batchRedeem' | 'billInfo' | 'billNft' | 'billPrice' | 'changeTreasury' | 'currentDebt' | 'currentFee' | 'customTreasury' | 'debtDecay' | 'debtRatio' | 'deposit' | 'getBillIds' | 'getBillIdsInRange' | 'initialize' | 'initializeBill' | 'lastDecay' | 'maxPayout' | 'paySubsidy' | 'payoutFor' | 'payoutSinceLastSubsidy' | 'payoutToken' | 'pendingPayoutFor' | 'percentVestedFor' | 'policy' | 'principalToken' | 'pullPolicy' | 'pushPolicy' | 'redeem' | 'renouncePolicy' | 'setAdjustment' | 'setBillTerms' | 'subsidyRouter' | 'terms' | 'totalDebt' | 'totalPayoutGiven' | 'totalPrincipalBilled' | 'treasury' | 'trueBillPrice' | 'userBillIds' | 'maxTotalPayout' | 'getMaxTotalPayout' | 'pendingPayout' | 'pendingVesting' | 'getBillInfo' | 'claimablePayout'): FunctionFragment; encodeFunctionData(functionFragment: 'DAO', values?: undefined): string; encodeFunctionData(functionFragment: 'adjustment', values?: undefined): string; encodeFunctionData(functionFragment: 'batchRedeem', values: [PromiseOrValue[]]): string; encodeFunctionData(functionFragment: 'billInfo', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'billNft', values?: undefined): string; encodeFunctionData(functionFragment: 'billPrice', values?: undefined): string; encodeFunctionData(functionFragment: 'changeTreasury', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'currentDebt', values?: undefined): string; encodeFunctionData(functionFragment: 'currentFee', values?: undefined): string; encodeFunctionData(functionFragment: 'customTreasury', values?: undefined): string; encodeFunctionData(functionFragment: 'debtDecay', values?: undefined): string; encodeFunctionData(functionFragment: 'debtRatio', values?: undefined): string; encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'getBillIds', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'getBillIdsInRange', values: [PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'initialize', values: [ PromiseOrValue[], PromiseOrValue[], PromiseOrValue[], PromiseOrValue ]): string; encodeFunctionData(functionFragment: 'initializeBill', values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: 'lastDecay', values?: undefined): string; encodeFunctionData(functionFragment: 'maxPayout', values?: undefined): string; encodeFunctionData(functionFragment: 'paySubsidy', values?: undefined): string; encodeFunctionData(functionFragment: 'payoutFor', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'payoutSinceLastSubsidy', values?: undefined): string; encodeFunctionData(functionFragment: 'payoutToken', values?: undefined): string; encodeFunctionData(functionFragment: 'pendingPayoutFor', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'percentVestedFor', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'policy', values?: undefined): string; encodeFunctionData(functionFragment: 'principalToken', values?: undefined): string; encodeFunctionData(functionFragment: 'pullPolicy', values?: undefined): string; encodeFunctionData(functionFragment: 'pushPolicy', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'redeem', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'renouncePolicy', values?: undefined): string; encodeFunctionData(functionFragment: 'setAdjustment', values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: 'setBillTerms', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'subsidyRouter', values?: undefined): string; encodeFunctionData(functionFragment: 'terms', values?: undefined): string; encodeFunctionData(functionFragment: 'totalDebt', values?: undefined): string; encodeFunctionData(functionFragment: 'totalPayoutGiven', values?: undefined): string; encodeFunctionData(functionFragment: 'totalPrincipalBilled', values?: undefined): string; encodeFunctionData(functionFragment: 'treasury', values?: undefined): string; encodeFunctionData(functionFragment: 'trueBillPrice', values?: undefined): string; encodeFunctionData(functionFragment: 'userBillIds', values?: undefined): string; encodeFunctionData(functionFragment: 'maxTotalPayout', values?: undefined): string; encodeFunctionData(functionFragment: 'getMaxTotalPayout', values?: undefined): string; encodeFunctionData(functionFragment: 'pendingPayout', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'pendingVesting', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'getBillInfo', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'claimablePayout', values: [PromiseOrValue]): string; decodeFunctionResult(functionFragment: 'DAO', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'adjustment', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'batchRedeem', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'billInfo', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'billNft', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'billPrice', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'changeTreasury', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'currentDebt', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'currentFee', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'customTreasury', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'debtDecay', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'debtRatio', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getBillIds', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getBillIdsInRange', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'initializeBill', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'lastDecay', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'maxPayout', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'paySubsidy', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'payoutFor', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'payoutSinceLastSubsidy', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'payoutToken', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingPayoutFor', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'percentVestedFor', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'policy', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'principalToken', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pullPolicy', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pushPolicy', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'redeem', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'renouncePolicy', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setAdjustment', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setBillTerms', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'subsidyRouter', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'terms', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'totalDebt', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'totalPayoutGiven', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'totalPrincipalBilled', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'treasury', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'trueBillPrice', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'userBillIds', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'maxTotalPayout', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getMaxTotalPayout', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingPayout', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingVesting', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getBillInfo', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimablePayout', data: BytesLike): Result; events: { 'BillCreated(uint256,uint256,uint256,uint256)': EventFragment; 'BillPriceChanged(uint256,uint256)': EventFragment; 'BillRedeemed(uint256,address,uint256,uint256)': EventFragment; 'ControlVariableAdjustment(uint256,uint256,uint256,bool)': EventFragment; 'PolicyTransferred(address,address)': EventFragment; 'SetAdjustment(bool,uint256,uint256,uint256)': EventFragment; 'TreasuryChanged(address)': EventFragment; }; getEvent(nameOrSignatureOrTopic: 'BillCreated'): EventFragment; getEvent(nameOrSignatureOrTopic: 'BillPriceChanged'): EventFragment; getEvent(nameOrSignatureOrTopic: 'BillRedeemed'): EventFragment; getEvent(nameOrSignatureOrTopic: 'ControlVariableAdjustment'): EventFragment; getEvent(nameOrSignatureOrTopic: 'PolicyTransferred'): EventFragment; getEvent(nameOrSignatureOrTopic: 'SetAdjustment'): EventFragment; getEvent(nameOrSignatureOrTopic: 'TreasuryChanged'): EventFragment; } export interface BillCreatedEventObject { deposit: BigNumber; payout: BigNumber; expires: BigNumber; billId: BigNumber; } export type BillCreatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], BillCreatedEventObject>; export type BillCreatedEventFilter = TypedEventFilter; export interface BillPriceChangedEventObject { internalPrice: BigNumber; debtRatio: BigNumber; } export type BillPriceChangedEvent = TypedEvent<[BigNumber, BigNumber], BillPriceChangedEventObject>; export type BillPriceChangedEventFilter = TypedEventFilter; export interface BillRedeemedEventObject { billId: BigNumber; recipient: string; payout: BigNumber; remaining: BigNumber; } export type BillRedeemedEvent = TypedEvent<[BigNumber, string, BigNumber, BigNumber], BillRedeemedEventObject>; export type BillRedeemedEventFilter = TypedEventFilter; export interface ControlVariableAdjustmentEventObject { initialBCV: BigNumber; newBCV: BigNumber; adjustment: BigNumber; addition: boolean; } export type ControlVariableAdjustmentEvent = TypedEvent<[ BigNumber, BigNumber, BigNumber, boolean ], ControlVariableAdjustmentEventObject>; export type ControlVariableAdjustmentEventFilter = TypedEventFilter; export interface PolicyTransferredEventObject { previousOwner: string; newOwner: string; } export type PolicyTransferredEvent = TypedEvent<[string, string], PolicyTransferredEventObject>; export type PolicyTransferredEventFilter = TypedEventFilter; export interface SetAdjustmentEventObject { addition: boolean; increment: BigNumber; target: BigNumber; buffer: BigNumber; } export type SetAdjustmentEvent = TypedEvent<[boolean, BigNumber, BigNumber, BigNumber], SetAdjustmentEventObject>; export type SetAdjustmentEventFilter = TypedEventFilter; export interface TreasuryChangedEventObject { newTreasury: string; } export type TreasuryChangedEvent = TypedEvent<[string], TreasuryChangedEventObject>; export type TreasuryChangedEventFilter = TypedEventFilter; export interface Bond extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: BondInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { DAO(overrides?: CallOverrides): Promise<[string]>; adjustment(overrides?: CallOverrides): Promise<[ boolean, BigNumber, BigNumber, BigNumber, BigNumber ] & { add: boolean; rate: BigNumber; target: BigNumber; buffer: BigNumber; lastBlockTimestamp: BigNumber; }>; batchRedeem(_billIds: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; billInfo(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber, BigNumber ] & { payout: BigNumber; vesting: BigNumber; lastBlockTimestamp: BigNumber; truePricePaid: BigNumber; }>; billNft(overrides?: CallOverrides): Promise<[string]>; billPrice(overrides?: CallOverrides): Promise<[BigNumber] & { price_: BigNumber; }>; changeTreasury(_treasury: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; currentDebt(overrides?: CallOverrides): Promise<[BigNumber]>; currentFee(overrides?: CallOverrides): Promise<[BigNumber] & { currentFee_: BigNumber; }>; customTreasury(overrides?: CallOverrides): Promise<[string]>; debtDecay(overrides?: CallOverrides): Promise<[BigNumber] & { decay_: BigNumber; }>; debtRatio(overrides?: CallOverrides): Promise<[BigNumber] & { debtRatio_: BigNumber; }>; deposit(_amount: PromiseOrValue, _maxPrice: PromiseOrValue, _depositor: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBillIds(user: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; getBillIdsInRange(user: PromiseOrValue, start: PromiseOrValue, end: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber[]]>; initialize(_config: PromiseOrValue[], _tierCeilings: PromiseOrValue[], _fees: PromiseOrValue[], _feeInPayout: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; initializeBill(_controlVariable: PromiseOrValue, _vestingTerm: PromiseOrValue, _minimumPrice: PromiseOrValue, _maxPayout: PromiseOrValue, _maxDebt: PromiseOrValue, _initialDebt: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; lastDecay(overrides?: CallOverrides): Promise<[BigNumber]>; maxPayout(overrides?: CallOverrides): Promise<[BigNumber]>; paySubsidy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; payoutFor(_value: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & { _payout: BigNumber; _fee: BigNumber; }>; payoutSinceLastSubsidy(overrides?: CallOverrides): Promise<[BigNumber]>; payoutToken(overrides?: CallOverrides): Promise<[string]>; pendingPayoutFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { pendingPayout_: BigNumber; }>; percentVestedFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { percentVested_: BigNumber; }>; policy(overrides?: CallOverrides): Promise<[string]>; principalToken(overrides?: CallOverrides): Promise<[string]>; pullPolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; pushPolicy(newPolicy_: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; redeem(_billId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; renouncePolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setAdjustment(_addition: PromiseOrValue, _increment: PromiseOrValue, _target: PromiseOrValue, _buffer: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setBillTerms(_parameter: PromiseOrValue, _input: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; subsidyRouter(overrides?: CallOverrides): Promise<[string]>; terms(overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { controlVariable: BigNumber; vestingTerm: BigNumber; minimumPrice: BigNumber; maxPayout: BigNumber; maxDebt: BigNumber; }>; totalDebt(overrides?: CallOverrides): Promise<[BigNumber]>; totalPayoutGiven(overrides?: CallOverrides): Promise<[BigNumber]>; totalPrincipalBilled(overrides?: CallOverrides): Promise<[BigNumber]>; treasury(overrides?: CallOverrides): Promise<[string]>; trueBillPrice(overrides?: CallOverrides): Promise<[BigNumber] & { price_: BigNumber; }>; userBillIds(overrides?: CallOverrides): Promise<[BigNumber[]]>; maxTotalPayout(overrides?: CallOverrides): Promise<[BigNumber]>; getMaxTotalPayout(overrides?: CallOverrides): Promise<[BigNumber]>; pendingPayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { pendingPayout_: BigNumber; }>; pendingVesting(_billId: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { pendingVesting_: BigNumber; }>; getBillInfo(billId: PromiseOrValue, overrides?: CallOverrides): Promise<[ICustomBill.BillStructOutput]>; claimablePayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { claimablePayout_: BigNumber; }>; }; DAO(overrides?: CallOverrides): Promise; adjustment(overrides?: CallOverrides): Promise<[ boolean, BigNumber, BigNumber, BigNumber, BigNumber ] & { add: boolean; rate: BigNumber; target: BigNumber; buffer: BigNumber; lastBlockTimestamp: BigNumber; }>; batchRedeem(_billIds: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; billInfo(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber, BigNumber ] & { payout: BigNumber; vesting: BigNumber; lastBlockTimestamp: BigNumber; truePricePaid: BigNumber; }>; billNft(overrides?: CallOverrides): Promise; billPrice(overrides?: CallOverrides): Promise; changeTreasury(_treasury: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; currentDebt(overrides?: CallOverrides): Promise; currentFee(overrides?: CallOverrides): Promise; customTreasury(overrides?: CallOverrides): Promise; debtDecay(overrides?: CallOverrides): Promise; debtRatio(overrides?: CallOverrides): Promise; deposit(_amount: PromiseOrValue, _maxPrice: PromiseOrValue, _depositor: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBillIds(user: PromiseOrValue, overrides?: CallOverrides): Promise; getBillIdsInRange(user: PromiseOrValue, start: PromiseOrValue, end: PromiseOrValue, overrides?: CallOverrides): Promise; initialize(_config: PromiseOrValue[], _tierCeilings: PromiseOrValue[], _fees: PromiseOrValue[], _feeInPayout: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; initializeBill(_controlVariable: PromiseOrValue, _vestingTerm: PromiseOrValue, _minimumPrice: PromiseOrValue, _maxPayout: PromiseOrValue, _maxDebt: PromiseOrValue, _initialDebt: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; lastDecay(overrides?: CallOverrides): Promise; maxPayout(overrides?: CallOverrides): Promise; paySubsidy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; payoutFor(_value: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & { _payout: BigNumber; _fee: BigNumber; }>; payoutSinceLastSubsidy(overrides?: CallOverrides): Promise; payoutToken(overrides?: CallOverrides): Promise; pendingPayoutFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; percentVestedFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; policy(overrides?: CallOverrides): Promise; principalToken(overrides?: CallOverrides): Promise; pullPolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; pushPolicy(newPolicy_: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; redeem(_billId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; renouncePolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setAdjustment(_addition: PromiseOrValue, _increment: PromiseOrValue, _target: PromiseOrValue, _buffer: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setBillTerms(_parameter: PromiseOrValue, _input: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; subsidyRouter(overrides?: CallOverrides): Promise; terms(overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { controlVariable: BigNumber; vestingTerm: BigNumber; minimumPrice: BigNumber; maxPayout: BigNumber; maxDebt: BigNumber; }>; totalDebt(overrides?: CallOverrides): Promise; totalPayoutGiven(overrides?: CallOverrides): Promise; totalPrincipalBilled(overrides?: CallOverrides): Promise; treasury(overrides?: CallOverrides): Promise; trueBillPrice(overrides?: CallOverrides): Promise; userBillIds(overrides?: CallOverrides): Promise; maxTotalPayout(overrides?: CallOverrides): Promise; getMaxTotalPayout(overrides?: CallOverrides): Promise; pendingPayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; pendingVesting(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; getBillInfo(billId: PromiseOrValue, overrides?: CallOverrides): Promise; claimablePayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; callStatic: { DAO(overrides?: CallOverrides): Promise; adjustment(overrides?: CallOverrides): Promise<[ boolean, BigNumber, BigNumber, BigNumber, BigNumber ] & { add: boolean; rate: BigNumber; target: BigNumber; buffer: BigNumber; lastBlockTimestamp: BigNumber; }>; batchRedeem(_billIds: PromiseOrValue[], overrides?: CallOverrides): Promise; billInfo(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber, BigNumber ] & { payout: BigNumber; vesting: BigNumber; lastBlockTimestamp: BigNumber; truePricePaid: BigNumber; }>; billNft(overrides?: CallOverrides): Promise; billPrice(overrides?: CallOverrides): Promise; changeTreasury(_treasury: PromiseOrValue, overrides?: CallOverrides): Promise; currentDebt(overrides?: CallOverrides): Promise; currentFee(overrides?: CallOverrides): Promise; customTreasury(overrides?: CallOverrides): Promise; debtDecay(overrides?: CallOverrides): Promise; debtRatio(overrides?: CallOverrides): Promise; deposit(_amount: PromiseOrValue, _maxPrice: PromiseOrValue, _depositor: PromiseOrValue, overrides?: CallOverrides): Promise; getBillIds(user: PromiseOrValue, overrides?: CallOverrides): Promise; getBillIdsInRange(user: PromiseOrValue, start: PromiseOrValue, end: PromiseOrValue, overrides?: CallOverrides): Promise; initialize(_config: PromiseOrValue[], _tierCeilings: PromiseOrValue[], _fees: PromiseOrValue[], _feeInPayout: PromiseOrValue, overrides?: CallOverrides): Promise; initializeBill(_controlVariable: PromiseOrValue, _vestingTerm: PromiseOrValue, _minimumPrice: PromiseOrValue, _maxPayout: PromiseOrValue, _maxDebt: PromiseOrValue, _initialDebt: PromiseOrValue, overrides?: CallOverrides): Promise; lastDecay(overrides?: CallOverrides): Promise; maxPayout(overrides?: CallOverrides): Promise; paySubsidy(overrides?: CallOverrides): Promise; payoutFor(_value: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & { _payout: BigNumber; _fee: BigNumber; }>; payoutSinceLastSubsidy(overrides?: CallOverrides): Promise; payoutToken(overrides?: CallOverrides): Promise; pendingPayoutFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; percentVestedFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; policy(overrides?: CallOverrides): Promise; principalToken(overrides?: CallOverrides): Promise; pullPolicy(overrides?: CallOverrides): Promise; pushPolicy(newPolicy_: PromiseOrValue, overrides?: CallOverrides): Promise; redeem(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; renouncePolicy(overrides?: CallOverrides): Promise; setAdjustment(_addition: PromiseOrValue, _increment: PromiseOrValue, _target: PromiseOrValue, _buffer: PromiseOrValue, overrides?: CallOverrides): Promise; setBillTerms(_parameter: PromiseOrValue, _input: PromiseOrValue, overrides?: CallOverrides): Promise; subsidyRouter(overrides?: CallOverrides): Promise; terms(overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { controlVariable: BigNumber; vestingTerm: BigNumber; minimumPrice: BigNumber; maxPayout: BigNumber; maxDebt: BigNumber; }>; totalDebt(overrides?: CallOverrides): Promise; totalPayoutGiven(overrides?: CallOverrides): Promise; totalPrincipalBilled(overrides?: CallOverrides): Promise; treasury(overrides?: CallOverrides): Promise; trueBillPrice(overrides?: CallOverrides): Promise; userBillIds(overrides?: CallOverrides): Promise; maxTotalPayout(overrides?: CallOverrides): Promise; getMaxTotalPayout(overrides?: CallOverrides): Promise; pendingPayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; pendingVesting(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; getBillInfo(billId: PromiseOrValue, overrides?: CallOverrides): Promise; claimablePayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: { 'BillCreated(uint256,uint256,uint256,uint256)'(deposit?: null, payout?: null, expires?: null, billId?: PromiseOrValue | null): BillCreatedEventFilter; BillCreated(deposit?: null, payout?: null, expires?: null, billId?: PromiseOrValue | null): BillCreatedEventFilter; 'BillPriceChanged(uint256,uint256)'(internalPrice?: null, debtRatio?: null): BillPriceChangedEventFilter; BillPriceChanged(internalPrice?: null, debtRatio?: null): BillPriceChangedEventFilter; 'BillRedeemed(uint256,address,uint256,uint256)'(billId?: null, recipient?: null, payout?: null, remaining?: null): BillRedeemedEventFilter; BillRedeemed(billId?: null, recipient?: null, payout?: null, remaining?: null): BillRedeemedEventFilter; 'ControlVariableAdjustment(uint256,uint256,uint256,bool)'(initialBCV?: null, newBCV?: null, adjustment?: null, addition?: null): ControlVariableAdjustmentEventFilter; ControlVariableAdjustment(initialBCV?: null, newBCV?: null, adjustment?: null, addition?: null): ControlVariableAdjustmentEventFilter; 'PolicyTransferred(address,address)'(previousOwner?: PromiseOrValue | null, newOwner?: PromiseOrValue | null): PolicyTransferredEventFilter; PolicyTransferred(previousOwner?: PromiseOrValue | null, newOwner?: PromiseOrValue | null): PolicyTransferredEventFilter; 'SetAdjustment(bool,uint256,uint256,uint256)'(addition?: null, increment?: null, target?: null, buffer?: null): SetAdjustmentEventFilter; SetAdjustment(addition?: null, increment?: null, target?: null, buffer?: null): SetAdjustmentEventFilter; 'TreasuryChanged(address)'(newTreasury?: null): TreasuryChangedEventFilter; TreasuryChanged(newTreasury?: null): TreasuryChangedEventFilter; }; estimateGas: { DAO(overrides?: CallOverrides): Promise; adjustment(overrides?: CallOverrides): Promise; batchRedeem(_billIds: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; billInfo(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; billNft(overrides?: CallOverrides): Promise; billPrice(overrides?: CallOverrides): Promise; changeTreasury(_treasury: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; currentDebt(overrides?: CallOverrides): Promise; currentFee(overrides?: CallOverrides): Promise; customTreasury(overrides?: CallOverrides): Promise; debtDecay(overrides?: CallOverrides): Promise; debtRatio(overrides?: CallOverrides): Promise; deposit(_amount: PromiseOrValue, _maxPrice: PromiseOrValue, _depositor: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBillIds(user: PromiseOrValue, overrides?: CallOverrides): Promise; getBillIdsInRange(user: PromiseOrValue, start: PromiseOrValue, end: PromiseOrValue, overrides?: CallOverrides): Promise; initialize(_config: PromiseOrValue[], _tierCeilings: PromiseOrValue[], _fees: PromiseOrValue[], _feeInPayout: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; initializeBill(_controlVariable: PromiseOrValue, _vestingTerm: PromiseOrValue, _minimumPrice: PromiseOrValue, _maxPayout: PromiseOrValue, _maxDebt: PromiseOrValue, _initialDebt: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; lastDecay(overrides?: CallOverrides): Promise; maxPayout(overrides?: CallOverrides): Promise; paySubsidy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; payoutFor(_value: PromiseOrValue, overrides?: CallOverrides): Promise; payoutSinceLastSubsidy(overrides?: CallOverrides): Promise; payoutToken(overrides?: CallOverrides): Promise; pendingPayoutFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; percentVestedFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; policy(overrides?: CallOverrides): Promise; principalToken(overrides?: CallOverrides): Promise; pullPolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; pushPolicy(newPolicy_: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; redeem(_billId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; renouncePolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setAdjustment(_addition: PromiseOrValue, _increment: PromiseOrValue, _target: PromiseOrValue, _buffer: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setBillTerms(_parameter: PromiseOrValue, _input: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; subsidyRouter(overrides?: CallOverrides): Promise; terms(overrides?: CallOverrides): Promise; totalDebt(overrides?: CallOverrides): Promise; totalPayoutGiven(overrides?: CallOverrides): Promise; totalPrincipalBilled(overrides?: CallOverrides): Promise; treasury(overrides?: CallOverrides): Promise; trueBillPrice(overrides?: CallOverrides): Promise; userBillIds(overrides?: CallOverrides): Promise; maxTotalPayout(overrides?: CallOverrides): Promise; getMaxTotalPayout(overrides?: CallOverrides): Promise; pendingPayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; pendingVesting(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; getBillInfo(billId: PromiseOrValue, overrides?: CallOverrides): Promise; claimablePayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; }; populateTransaction: { DAO(overrides?: CallOverrides): Promise; adjustment(overrides?: CallOverrides): Promise; batchRedeem(_billIds: PromiseOrValue[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; billInfo(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; billNft(overrides?: CallOverrides): Promise; billPrice(overrides?: CallOverrides): Promise; changeTreasury(_treasury: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; currentDebt(overrides?: CallOverrides): Promise; currentFee(overrides?: CallOverrides): Promise; customTreasury(overrides?: CallOverrides): Promise; debtDecay(overrides?: CallOverrides): Promise; debtRatio(overrides?: CallOverrides): Promise; deposit(_amount: PromiseOrValue, _maxPrice: PromiseOrValue, _depositor: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBillIds(user: PromiseOrValue, overrides?: CallOverrides): Promise; getBillIdsInRange(user: PromiseOrValue, start: PromiseOrValue, end: PromiseOrValue, overrides?: CallOverrides): Promise; initialize(_config: PromiseOrValue[], _tierCeilings: PromiseOrValue[], _fees: PromiseOrValue[], _feeInPayout: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; initializeBill(_controlVariable: PromiseOrValue, _vestingTerm: PromiseOrValue, _minimumPrice: PromiseOrValue, _maxPayout: PromiseOrValue, _maxDebt: PromiseOrValue, _initialDebt: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; lastDecay(overrides?: CallOverrides): Promise; maxPayout(overrides?: CallOverrides): Promise; paySubsidy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; payoutFor(_value: PromiseOrValue, overrides?: CallOverrides): Promise; payoutSinceLastSubsidy(overrides?: CallOverrides): Promise; payoutToken(overrides?: CallOverrides): Promise; pendingPayoutFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; percentVestedFor(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; policy(overrides?: CallOverrides): Promise; principalToken(overrides?: CallOverrides): Promise; pullPolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; pushPolicy(newPolicy_: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; redeem(_billId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; renouncePolicy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setAdjustment(_addition: PromiseOrValue, _increment: PromiseOrValue, _target: PromiseOrValue, _buffer: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setBillTerms(_parameter: PromiseOrValue, _input: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; subsidyRouter(overrides?: CallOverrides): Promise; terms(overrides?: CallOverrides): Promise; totalDebt(overrides?: CallOverrides): Promise; totalPayoutGiven(overrides?: CallOverrides): Promise; totalPrincipalBilled(overrides?: CallOverrides): Promise; treasury(overrides?: CallOverrides): Promise; trueBillPrice(overrides?: CallOverrides): Promise; userBillIds(overrides?: CallOverrides): Promise; maxTotalPayout(overrides?: CallOverrides): Promise; getMaxTotalPayout(overrides?: CallOverrides): Promise; pendingPayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; pendingVesting(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; getBillInfo(billId: PromiseOrValue, overrides?: CallOverrides): Promise; claimablePayout(_billId: PromiseOrValue, overrides?: CallOverrides): Promise; }; }