import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface HectorNetworkBondNoTreasuryInterface extends utils.Interface {
    functions: {
        'DAO()': FunctionFragment;
        'HEC()': FunctionFragment;
        'adjustment()': FunctionFragment;
        'bondInfo(uint256)': FunctionFragment;
        'bondPrice()': FunctionFragment;
        'bondPriceInUSD()': FunctionFragment;
        'currentDebt()': FunctionFragment;
        'debtDecay()': FunctionFragment;
        'debtRatio()': FunctionFragment;
        'deposit(uint256,uint256,uint256)': FunctionFragment;
        'depositCounts(address)': FunctionFragment;
        'depositIdGenerator()': FunctionFragment;
        'depositIndexes(uint256)': FunctionFragment;
        'initializeBondTerms(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment;
        'lastDecay()': FunctionFragment;
        'lockingDiscounts(uint256)': FunctionFragment;
        'maxPayout()': FunctionFragment;
        'name()': FunctionFragment;
        'oracle()': FunctionFragment;
        'ownedDeposits(address,uint256)': FunctionFragment;
        'payoutFor(uint256,uint256)': FunctionFragment;
        'pendingPayoutFor(uint256)': FunctionFragment;
        'percentVestedFor(uint256)': FunctionFragment;
        'policy()': FunctionFragment;
        'principle()': FunctionFragment;
        'pullManagement()': FunctionFragment;
        'pushManagement(address)': FunctionFragment;
        'redeem(uint256)': FunctionFragment;
        'renounceManagement()': FunctionFragment;
        'setAdjustment(bool,uint256,uint256,uint256)': FunctionFragment;
        'setBondTerms(uint8,uint256)': FunctionFragment;
        'setLockingDiscount(uint256,uint256)': FunctionFragment;
        'standardizedDebtRatio()': FunctionFragment;
        'terms()': FunctionFragment;
        'totalDebt()': FunctionFragment;
        'totalPrinciple()': FunctionFragment;
        'totalRemainingPayout()': FunctionFragment;
        'withdrawToken(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DAO' | 'HEC' | 'adjustment' | 'bondInfo' | 'bondPrice' | 'bondPriceInUSD' | 'currentDebt' | 'debtDecay' | 'debtRatio' | 'deposit' | 'depositCounts' | 'depositIdGenerator' | 'depositIndexes' | 'initializeBondTerms' | 'lastDecay' | 'lockingDiscounts' | 'maxPayout' | 'name' | 'oracle' | 'ownedDeposits' | 'payoutFor' | 'pendingPayoutFor' | 'percentVestedFor' | 'policy' | 'principle' | 'pullManagement' | 'pushManagement' | 'redeem' | 'renounceManagement' | 'setAdjustment' | 'setBondTerms' | 'setLockingDiscount' | 'standardizedDebtRatio' | 'terms' | 'totalDebt' | 'totalPrinciple' | 'totalRemainingPayout' | 'withdrawToken'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DAO', values?: undefined): string;
    encodeFunctionData(functionFragment: 'HEC', values?: undefined): string;
    encodeFunctionData(functionFragment: 'adjustment', values?: undefined): string;
    encodeFunctionData(functionFragment: 'bondInfo', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'bondPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'bondPriceInUSD', values?: undefined): string;
    encodeFunctionData(functionFragment: 'currentDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'debtDecay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'debtRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositCounts', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'depositIdGenerator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'depositIndexes', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initializeBondTerms', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'lastDecay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lockingDiscounts', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'maxPayout', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'oracle', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ownedDeposits', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'payoutFor', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pendingPayoutFor', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'percentVestedFor', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'policy', values?: undefined): string;
    encodeFunctionData(functionFragment: 'principle', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pullManagement', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pushManagement', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'redeem', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'renounceManagement', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setAdjustment', values: [
        PromiseOrValue<boolean>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'setBondTerms', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setLockingDiscount', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'standardizedDebtRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'terms', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalPrinciple', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalRemainingPayout', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawToken', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'DAO', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'HEC', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'adjustment', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondPriceInUSD', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtDecay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositCounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositIdGenerator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositIndexes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initializeBondTerms', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastDecay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockingDiscounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxPayout', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'oracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ownedDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'payoutFor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingPayoutFor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'percentVestedFor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'policy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'principle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pullManagement', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pushManagement', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'redeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceManagement', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAdjustment', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBondTerms', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLockingDiscount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'standardizedDebtRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'terms', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalPrinciple', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalRemainingPayout', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawToken', data: BytesLike): Result;
    events: {
        'BondCreated(uint256,uint256,uint256,uint256)': EventFragment;
        'BondPriceChanged(uint256,uint256,uint256)': EventFragment;
        'BondRedeemed(address,uint256,uint256)': EventFragment;
        'ControlVariableAdjustment(uint256,uint256,uint256,bool)': EventFragment;
        'OwnershipPulled(address,address)': EventFragment;
        'OwnershipPushed(address,address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'BondCreated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BondPriceChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BondRedeemed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ControlVariableAdjustment'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipPulled'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipPushed'): EventFragment;
}
export interface BondCreatedEventObject {
    deposit: BigNumber;
    payout: BigNumber;
    expires: BigNumber;
    priceInUSD: BigNumber;
}
export declare type BondCreatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], BondCreatedEventObject>;
export declare type BondCreatedEventFilter = TypedEventFilter<BondCreatedEvent>;
export interface BondPriceChangedEventObject {
    priceInUSD: BigNumber;
    internalPrice: BigNumber;
    debtRatio: BigNumber;
}
export declare type BondPriceChangedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], BondPriceChangedEventObject>;
export declare type BondPriceChangedEventFilter = TypedEventFilter<BondPriceChangedEvent>;
export interface BondRedeemedEventObject {
    recipient: string;
    payout: BigNumber;
    remaining: BigNumber;
}
export declare type BondRedeemedEvent = TypedEvent<[string, BigNumber, BigNumber], BondRedeemedEventObject>;
export declare type BondRedeemedEventFilter = TypedEventFilter<BondRedeemedEvent>;
export interface ControlVariableAdjustmentEventObject {
    initialBCV: BigNumber;
    newBCV: BigNumber;
    adjustment: BigNumber;
    addition: boolean;
}
export declare type ControlVariableAdjustmentEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    boolean
], ControlVariableAdjustmentEventObject>;
export declare type ControlVariableAdjustmentEventFilter = TypedEventFilter<ControlVariableAdjustmentEvent>;
export interface OwnershipPulledEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipPulledEvent = TypedEvent<[string, string], OwnershipPulledEventObject>;
export declare type OwnershipPulledEventFilter = TypedEventFilter<OwnershipPulledEvent>;
export interface OwnershipPushedEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipPushedEvent = TypedEvent<[string, string], OwnershipPushedEventObject>;
export declare type OwnershipPushedEventFilter = TypedEventFilter<OwnershipPushedEvent>;
export interface HectorNetworkBondNoTreasury extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: HectorNetworkBondNoTreasuryInterface;
    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: {
        DAO(overrides?: CallOverrides): Promise<[string]>;
        HEC(overrides?: CallOverrides): Promise<[string]>;
        adjustment(overrides?: CallOverrides): Promise<[
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            add: boolean;
            rate: BigNumber;
            target: BigNumber;
            buffer: BigNumber;
            lastBlock: BigNumber;
        }>;
        bondInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            string
        ] & {
            payout: BigNumber;
            vesting: BigNumber;
            lastBlockAt: BigNumber;
            pricePaid: BigNumber;
            depositor: string;
        }>;
        bondPrice(overrides?: CallOverrides): Promise<[BigNumber] & {
            price_: BigNumber;
        }>;
        bondPriceInUSD(overrides?: CallOverrides): Promise<[BigNumber] & {
            price_: BigNumber;
        }>;
        currentDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        debtDecay(overrides?: CallOverrides): Promise<[BigNumber] & {
            decay_: BigNumber;
        }>;
        debtRatio(overrides?: CallOverrides): Promise<[BigNumber] & {
            debtRatio_: BigNumber;
        }>;
        deposit(_amount: PromiseOrValue<BigNumberish>, _maxPrice: PromiseOrValue<BigNumberish>, _lockingPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositCounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        depositIdGenerator(overrides?: CallOverrides): Promise<[BigNumber] & {
            _value: BigNumber;
        }>;
        depositIndexes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        initializeBondTerms(_controlVariable: PromiseOrValue<BigNumberish>, _vestingTerm: PromiseOrValue<BigNumberish>, _minimumPrice: PromiseOrValue<BigNumberish>, _maxPayout: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, _maxDebt: PromiseOrValue<BigNumberish>, _totalSupply: PromiseOrValue<BigNumberish>, _initialDebt: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lastDecay(overrides?: CallOverrides): Promise<[BigNumber]>;
        lockingDiscounts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        maxPayout(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string] & {
            _name: string;
        }>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        ownedDeposits(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        payoutFor(_value: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        pendingPayoutFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            pendingPayout_: BigNumber;
        }>;
        percentVestedFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            percentVested_: BigNumber;
        }>;
        policy(overrides?: CallOverrides): Promise<[string]>;
        principle(overrides?: CallOverrides): Promise<[string]>;
        pullManagement(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pushManagement(newOwner_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        redeem(_depositId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceManagement(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAdjustment(_addition: PromiseOrValue<boolean>, _increment: PromiseOrValue<BigNumberish>, _target: PromiseOrValue<BigNumberish>, _buffer: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setBondTerms(_parameter: PromiseOrValue<BigNumberish>, _input: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLockingDiscount(_lockingPeriod: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        standardizedDebtRatio(overrides?: CallOverrides): Promise<[BigNumber]>;
        terms(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            controlVariable: BigNumber;
            vestingTerm: BigNumber;
            minimumPrice: BigNumber;
            maxPayout: BigNumber;
            fee: BigNumber;
            maxDebt: BigNumber;
            totalSupply: BigNumber;
        }>;
        totalDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalPrinciple(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalRemainingPayout(overrides?: CallOverrides): Promise<[BigNumber]>;
        withdrawToken(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DAO(overrides?: CallOverrides): Promise<string>;
    HEC(overrides?: CallOverrides): Promise<string>;
    adjustment(overrides?: CallOverrides): Promise<[
        boolean,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        add: boolean;
        rate: BigNumber;
        target: BigNumber;
        buffer: BigNumber;
        lastBlock: BigNumber;
    }>;
    bondInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        string
    ] & {
        payout: BigNumber;
        vesting: BigNumber;
        lastBlockAt: BigNumber;
        pricePaid: BigNumber;
        depositor: string;
    }>;
    bondPrice(overrides?: CallOverrides): Promise<BigNumber>;
    bondPriceInUSD(overrides?: CallOverrides): Promise<BigNumber>;
    currentDebt(overrides?: CallOverrides): Promise<BigNumber>;
    debtDecay(overrides?: CallOverrides): Promise<BigNumber>;
    debtRatio(overrides?: CallOverrides): Promise<BigNumber>;
    deposit(_amount: PromiseOrValue<BigNumberish>, _maxPrice: PromiseOrValue<BigNumberish>, _lockingPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositCounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    depositIdGenerator(overrides?: CallOverrides): Promise<BigNumber>;
    depositIndexes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    initializeBondTerms(_controlVariable: PromiseOrValue<BigNumberish>, _vestingTerm: PromiseOrValue<BigNumberish>, _minimumPrice: PromiseOrValue<BigNumberish>, _maxPayout: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, _maxDebt: PromiseOrValue<BigNumberish>, _totalSupply: PromiseOrValue<BigNumberish>, _initialDebt: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lastDecay(overrides?: CallOverrides): Promise<BigNumber>;
    lockingDiscounts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    maxPayout(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    oracle(overrides?: CallOverrides): Promise<string>;
    ownedDeposits(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    payoutFor(_value: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    pendingPayoutFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    percentVestedFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    policy(overrides?: CallOverrides): Promise<string>;
    principle(overrides?: CallOverrides): Promise<string>;
    pullManagement(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pushManagement(newOwner_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    redeem(_depositId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceManagement(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAdjustment(_addition: PromiseOrValue<boolean>, _increment: PromiseOrValue<BigNumberish>, _target: PromiseOrValue<BigNumberish>, _buffer: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setBondTerms(_parameter: PromiseOrValue<BigNumberish>, _input: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLockingDiscount(_lockingPeriod: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    standardizedDebtRatio(overrides?: CallOverrides): Promise<BigNumber>;
    terms(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        controlVariable: BigNumber;
        vestingTerm: BigNumber;
        minimumPrice: BigNumber;
        maxPayout: BigNumber;
        fee: BigNumber;
        maxDebt: BigNumber;
        totalSupply: BigNumber;
    }>;
    totalDebt(overrides?: CallOverrides): Promise<BigNumber>;
    totalPrinciple(overrides?: CallOverrides): Promise<BigNumber>;
    totalRemainingPayout(overrides?: CallOverrides): Promise<BigNumber>;
    withdrawToken(_token: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DAO(overrides?: CallOverrides): Promise<string>;
        HEC(overrides?: CallOverrides): Promise<string>;
        adjustment(overrides?: CallOverrides): Promise<[
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            add: boolean;
            rate: BigNumber;
            target: BigNumber;
            buffer: BigNumber;
            lastBlock: BigNumber;
        }>;
        bondInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            string
        ] & {
            payout: BigNumber;
            vesting: BigNumber;
            lastBlockAt: BigNumber;
            pricePaid: BigNumber;
            depositor: string;
        }>;
        bondPrice(overrides?: CallOverrides): Promise<BigNumber>;
        bondPriceInUSD(overrides?: CallOverrides): Promise<BigNumber>;
        currentDebt(overrides?: CallOverrides): Promise<BigNumber>;
        debtDecay(overrides?: CallOverrides): Promise<BigNumber>;
        debtRatio(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_amount: PromiseOrValue<BigNumberish>, _maxPrice: PromiseOrValue<BigNumberish>, _lockingPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        depositCounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        depositIdGenerator(overrides?: CallOverrides): Promise<BigNumber>;
        depositIndexes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        initializeBondTerms(_controlVariable: PromiseOrValue<BigNumberish>, _vestingTerm: PromiseOrValue<BigNumberish>, _minimumPrice: PromiseOrValue<BigNumberish>, _maxPayout: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, _maxDebt: PromiseOrValue<BigNumberish>, _totalSupply: PromiseOrValue<BigNumberish>, _initialDebt: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        lastDecay(overrides?: CallOverrides): Promise<BigNumber>;
        lockingDiscounts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        maxPayout(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        oracle(overrides?: CallOverrides): Promise<string>;
        ownedDeposits(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        payoutFor(_value: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingPayoutFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        percentVestedFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        policy(overrides?: CallOverrides): Promise<string>;
        principle(overrides?: CallOverrides): Promise<string>;
        pullManagement(overrides?: CallOverrides): Promise<void>;
        pushManagement(newOwner_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        redeem(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceManagement(overrides?: CallOverrides): Promise<void>;
        setAdjustment(_addition: PromiseOrValue<boolean>, _increment: PromiseOrValue<BigNumberish>, _target: PromiseOrValue<BigNumberish>, _buffer: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setBondTerms(_parameter: PromiseOrValue<BigNumberish>, _input: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setLockingDiscount(_lockingPeriod: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        standardizedDebtRatio(overrides?: CallOverrides): Promise<BigNumber>;
        terms(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            controlVariable: BigNumber;
            vestingTerm: BigNumber;
            minimumPrice: BigNumber;
            maxPayout: BigNumber;
            fee: BigNumber;
            maxDebt: BigNumber;
            totalSupply: BigNumber;
        }>;
        totalDebt(overrides?: CallOverrides): Promise<BigNumber>;
        totalPrinciple(overrides?: CallOverrides): Promise<BigNumber>;
        totalRemainingPayout(overrides?: CallOverrides): Promise<BigNumber>;
        withdrawToken(_token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    };
    filters: {
        'BondCreated(uint256,uint256,uint256,uint256)'(deposit?: null, payout?: PromiseOrValue<BigNumberish> | null, expires?: PromiseOrValue<BigNumberish> | null, priceInUSD?: PromiseOrValue<BigNumberish> | null): BondCreatedEventFilter;
        BondCreated(deposit?: null, payout?: PromiseOrValue<BigNumberish> | null, expires?: PromiseOrValue<BigNumberish> | null, priceInUSD?: PromiseOrValue<BigNumberish> | null): BondCreatedEventFilter;
        'BondPriceChanged(uint256,uint256,uint256)'(priceInUSD?: PromiseOrValue<BigNumberish> | null, internalPrice?: PromiseOrValue<BigNumberish> | null, debtRatio?: PromiseOrValue<BigNumberish> | null): BondPriceChangedEventFilter;
        BondPriceChanged(priceInUSD?: PromiseOrValue<BigNumberish> | null, internalPrice?: PromiseOrValue<BigNumberish> | null, debtRatio?: PromiseOrValue<BigNumberish> | null): BondPriceChangedEventFilter;
        'BondRedeemed(address,uint256,uint256)'(recipient?: PromiseOrValue<string> | null, payout?: null, remaining?: null): BondRedeemedEventFilter;
        BondRedeemed(recipient?: PromiseOrValue<string> | null, payout?: null, remaining?: null): BondRedeemedEventFilter;
        'ControlVariableAdjustment(uint256,uint256,uint256,bool)'(initialBCV?: null, newBCV?: null, adjustment?: null, addition?: null): ControlVariableAdjustmentEventFilter;
        ControlVariableAdjustment(initialBCV?: null, newBCV?: null, adjustment?: null, addition?: null): ControlVariableAdjustmentEventFilter;
        'OwnershipPulled(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipPulledEventFilter;
        OwnershipPulled(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipPulledEventFilter;
        'OwnershipPushed(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipPushedEventFilter;
        OwnershipPushed(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipPushedEventFilter;
    };
    estimateGas: {
        DAO(overrides?: CallOverrides): Promise<BigNumber>;
        HEC(overrides?: CallOverrides): Promise<BigNumber>;
        adjustment(overrides?: CallOverrides): Promise<BigNumber>;
        bondInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        bondPrice(overrides?: CallOverrides): Promise<BigNumber>;
        bondPriceInUSD(overrides?: CallOverrides): Promise<BigNumber>;
        currentDebt(overrides?: CallOverrides): Promise<BigNumber>;
        debtDecay(overrides?: CallOverrides): Promise<BigNumber>;
        debtRatio(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_amount: PromiseOrValue<BigNumberish>, _maxPrice: PromiseOrValue<BigNumberish>, _lockingPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositCounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        depositIdGenerator(overrides?: CallOverrides): Promise<BigNumber>;
        depositIndexes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        initializeBondTerms(_controlVariable: PromiseOrValue<BigNumberish>, _vestingTerm: PromiseOrValue<BigNumberish>, _minimumPrice: PromiseOrValue<BigNumberish>, _maxPayout: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, _maxDebt: PromiseOrValue<BigNumberish>, _totalSupply: PromiseOrValue<BigNumberish>, _initialDebt: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lastDecay(overrides?: CallOverrides): Promise<BigNumber>;
        lockingDiscounts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        maxPayout(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        ownedDeposits(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        payoutFor(_value: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingPayoutFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        percentVestedFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        policy(overrides?: CallOverrides): Promise<BigNumber>;
        principle(overrides?: CallOverrides): Promise<BigNumber>;
        pullManagement(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pushManagement(newOwner_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        redeem(_depositId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceManagement(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAdjustment(_addition: PromiseOrValue<boolean>, _increment: PromiseOrValue<BigNumberish>, _target: PromiseOrValue<BigNumberish>, _buffer: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setBondTerms(_parameter: PromiseOrValue<BigNumberish>, _input: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLockingDiscount(_lockingPeriod: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        standardizedDebtRatio(overrides?: CallOverrides): Promise<BigNumber>;
        terms(overrides?: CallOverrides): Promise<BigNumber>;
        totalDebt(overrides?: CallOverrides): Promise<BigNumber>;
        totalPrinciple(overrides?: CallOverrides): Promise<BigNumber>;
        totalRemainingPayout(overrides?: CallOverrides): Promise<BigNumber>;
        withdrawToken(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DAO(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        HEC(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        adjustment(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bondInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bondPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bondPriceInUSD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        debtDecay(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        debtRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(_amount: PromiseOrValue<BigNumberish>, _maxPrice: PromiseOrValue<BigNumberish>, _lockingPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositCounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositIdGenerator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositIndexes(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initializeBondTerms(_controlVariable: PromiseOrValue<BigNumberish>, _vestingTerm: PromiseOrValue<BigNumberish>, _minimumPrice: PromiseOrValue<BigNumberish>, _maxPayout: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, _maxDebt: PromiseOrValue<BigNumberish>, _totalSupply: PromiseOrValue<BigNumberish>, _initialDebt: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lastDecay(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockingDiscounts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxPayout(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ownedDeposits(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        payoutFor(_value: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingPayoutFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        percentVestedFor(_depositId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        policy(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        principle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pullManagement(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pushManagement(newOwner_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        redeem(_depositId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceManagement(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAdjustment(_addition: PromiseOrValue<boolean>, _increment: PromiseOrValue<BigNumberish>, _target: PromiseOrValue<BigNumberish>, _buffer: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setBondTerms(_parameter: PromiseOrValue<BigNumberish>, _input: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLockingDiscount(_lockingPeriod: PromiseOrValue<BigNumberish>, _discount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        standardizedDebtRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        terms(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalPrinciple(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalRemainingPayout(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawToken(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
