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 LiquityStakingInterface extends utils.Interface {
    functions: {
        'DECIMAL_PRECISION()': FunctionFragment;
        'F_ETH()': FunctionFragment;
        'F_LUSD()': FunctionFragment;
        'NAME()': FunctionFragment;
        'activePoolAddress()': FunctionFragment;
        'borrowerOperationsAddress()': FunctionFragment;
        'getPendingETHGain(address)': FunctionFragment;
        'getPendingLUSDGain(address)': FunctionFragment;
        'increaseF_ETH(uint256)': FunctionFragment;
        'increaseF_LUSD(uint256)': FunctionFragment;
        'isOwner()': FunctionFragment;
        'lqtyToken()': FunctionFragment;
        'lusdToken()': FunctionFragment;
        'owner()': FunctionFragment;
        'setAddresses(address,address,address,address,address)': FunctionFragment;
        'snapshots(address)': FunctionFragment;
        'stake(uint256)': FunctionFragment;
        'stakes(address)': FunctionFragment;
        'totalLQTYStaked()': FunctionFragment;
        'troveManagerAddress()': FunctionFragment;
        'unstake(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DECIMAL_PRECISION' | 'F_ETH' | 'F_LUSD' | 'NAME' | 'activePoolAddress' | 'borrowerOperationsAddress' | 'getPendingETHGain' | 'getPendingLUSDGain' | 'increaseF_ETH' | 'increaseF_LUSD' | 'isOwner' | 'lqtyToken' | 'lusdToken' | 'owner' | 'setAddresses' | 'snapshots' | 'stake' | 'stakes' | 'totalLQTYStaked' | 'troveManagerAddress' | 'unstake'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DECIMAL_PRECISION', values?: undefined): string;
    encodeFunctionData(functionFragment: 'F_ETH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'F_LUSD', values?: undefined): string;
    encodeFunctionData(functionFragment: 'NAME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'activePoolAddress', values?: undefined): string;
    encodeFunctionData(functionFragment: 'borrowerOperationsAddress', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPendingETHGain', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getPendingLUSDGain', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increaseF_ETH', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'increaseF_LUSD', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lqtyToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lusdToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setAddresses', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'snapshots', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakes', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalLQTYStaked', values?: undefined): string;
    encodeFunctionData(functionFragment: 'troveManagerAddress', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unstake', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'DECIMAL_PRECISION', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'F_ETH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'F_LUSD', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'NAME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'activePoolAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrowerOperationsAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPendingETHGain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPendingLUSDGain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseF_ETH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseF_LUSD', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lqtyToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lusdToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAddresses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'snapshots', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalLQTYStaked', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'troveManagerAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstake', data: BytesLike): Result;
    events: {
        'ActivePoolAddressSet(address)': EventFragment;
        'BorrowerOperationsAddressSet(address)': EventFragment;
        'EtherSent(address,uint256)': EventFragment;
        'F_ETHUpdated(uint256)': EventFragment;
        'F_LUSDUpdated(uint256)': EventFragment;
        'LQTYTokenAddressSet(address)': EventFragment;
        'LUSDTokenAddressSet(address)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'StakeChanged(address,uint256)': EventFragment;
        'StakerSnapshotsUpdated(address,uint256,uint256)': EventFragment;
        'StakingGainsWithdrawn(address,uint256,uint256)': EventFragment;
        'TotalLQTYStakedUpdated(uint256)': EventFragment;
        'TroveManagerAddressSet(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'ActivePoolAddressSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BorrowerOperationsAddressSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EtherSent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'F_ETHUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'F_LUSDUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LQTYTokenAddressSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LUSDTokenAddressSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakeChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakerSnapshotsUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StakingGainsWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TotalLQTYStakedUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TroveManagerAddressSet'): EventFragment;
}
export interface ActivePoolAddressSetEventObject {
    _activePoolAddress: string;
}
export declare type ActivePoolAddressSetEvent = TypedEvent<[string], ActivePoolAddressSetEventObject>;
export declare type ActivePoolAddressSetEventFilter = TypedEventFilter<ActivePoolAddressSetEvent>;
export interface BorrowerOperationsAddressSetEventObject {
    _borrowerOperationsAddress: string;
}
export declare type BorrowerOperationsAddressSetEvent = TypedEvent<[string], BorrowerOperationsAddressSetEventObject>;
export declare type BorrowerOperationsAddressSetEventFilter = TypedEventFilter<BorrowerOperationsAddressSetEvent>;
export interface EtherSentEventObject {
    _account: string;
    _amount: BigNumber;
}
export declare type EtherSentEvent = TypedEvent<[string, BigNumber], EtherSentEventObject>;
export declare type EtherSentEventFilter = TypedEventFilter<EtherSentEvent>;
export interface F_ETHUpdatedEventObject {
    _F_ETH: BigNumber;
}
export declare type F_ETHUpdatedEvent = TypedEvent<[BigNumber], F_ETHUpdatedEventObject>;
export declare type F_ETHUpdatedEventFilter = TypedEventFilter<F_ETHUpdatedEvent>;
export interface F_LUSDUpdatedEventObject {
    _F_LUSD: BigNumber;
}
export declare type F_LUSDUpdatedEvent = TypedEvent<[BigNumber], F_LUSDUpdatedEventObject>;
export declare type F_LUSDUpdatedEventFilter = TypedEventFilter<F_LUSDUpdatedEvent>;
export interface LQTYTokenAddressSetEventObject {
    _lqtyTokenAddress: string;
}
export declare type LQTYTokenAddressSetEvent = TypedEvent<[string], LQTYTokenAddressSetEventObject>;
export declare type LQTYTokenAddressSetEventFilter = TypedEventFilter<LQTYTokenAddressSetEvent>;
export interface LUSDTokenAddressSetEventObject {
    _lusdTokenAddress: string;
}
export declare type LUSDTokenAddressSetEvent = TypedEvent<[string], LUSDTokenAddressSetEventObject>;
export declare type LUSDTokenAddressSetEventFilter = TypedEventFilter<LUSDTokenAddressSetEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface StakeChangedEventObject {
    staker: string;
    newStake: BigNumber;
}
export declare type StakeChangedEvent = TypedEvent<[string, BigNumber], StakeChangedEventObject>;
export declare type StakeChangedEventFilter = TypedEventFilter<StakeChangedEvent>;
export interface StakerSnapshotsUpdatedEventObject {
    _staker: string;
    _F_ETH: BigNumber;
    _F_LUSD: BigNumber;
}
export declare type StakerSnapshotsUpdatedEvent = TypedEvent<[string, BigNumber, BigNumber], StakerSnapshotsUpdatedEventObject>;
export declare type StakerSnapshotsUpdatedEventFilter = TypedEventFilter<StakerSnapshotsUpdatedEvent>;
export interface StakingGainsWithdrawnEventObject {
    staker: string;
    LUSDGain: BigNumber;
    ETHGain: BigNumber;
}
export declare type StakingGainsWithdrawnEvent = TypedEvent<[string, BigNumber, BigNumber], StakingGainsWithdrawnEventObject>;
export declare type StakingGainsWithdrawnEventFilter = TypedEventFilter<StakingGainsWithdrawnEvent>;
export interface TotalLQTYStakedUpdatedEventObject {
    _totalLQTYStaked: BigNumber;
}
export declare type TotalLQTYStakedUpdatedEvent = TypedEvent<[BigNumber], TotalLQTYStakedUpdatedEventObject>;
export declare type TotalLQTYStakedUpdatedEventFilter = TypedEventFilter<TotalLQTYStakedUpdatedEvent>;
export interface TroveManagerAddressSetEventObject {
    _troveManager: string;
}
export declare type TroveManagerAddressSetEvent = TypedEvent<[string], TroveManagerAddressSetEventObject>;
export declare type TroveManagerAddressSetEventFilter = TypedEventFilter<TroveManagerAddressSetEvent>;
export interface LiquityStaking extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: LiquityStakingInterface;
    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: {
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<[BigNumber]>;
        F_ETH(overrides?: CallOverrides): Promise<[BigNumber]>;
        F_LUSD(overrides?: CallOverrides): Promise<[BigNumber]>;
        NAME(overrides?: CallOverrides): Promise<[string]>;
        activePoolAddress(overrides?: CallOverrides): Promise<[string]>;
        borrowerOperationsAddress(overrides?: CallOverrides): Promise<[string]>;
        getPendingETHGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPendingLUSDGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        increaseF_ETH(_ETHFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        increaseF_LUSD(_LUSDFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isOwner(overrides?: CallOverrides): Promise<[boolean]>;
        lqtyToken(overrides?: CallOverrides): Promise<[string]>;
        lusdToken(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        setAddresses(_lqtyTokenAddress: PromiseOrValue<string>, _lusdTokenAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _borrowerOperationsAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        snapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            F_ETH_Snapshot: BigNumber;
            F_LUSD_Snapshot: BigNumber;
        }>;
        stake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalLQTYStaked(overrides?: CallOverrides): Promise<[BigNumber]>;
        troveManagerAddress(overrides?: CallOverrides): Promise<[string]>;
        unstake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DECIMAL_PRECISION(overrides?: CallOverrides): Promise<BigNumber>;
    F_ETH(overrides?: CallOverrides): Promise<BigNumber>;
    F_LUSD(overrides?: CallOverrides): Promise<BigNumber>;
    NAME(overrides?: CallOverrides): Promise<string>;
    activePoolAddress(overrides?: CallOverrides): Promise<string>;
    borrowerOperationsAddress(overrides?: CallOverrides): Promise<string>;
    getPendingETHGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getPendingLUSDGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    increaseF_ETH(_ETHFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    increaseF_LUSD(_LUSDFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isOwner(overrides?: CallOverrides): Promise<boolean>;
    lqtyToken(overrides?: CallOverrides): Promise<string>;
    lusdToken(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    setAddresses(_lqtyTokenAddress: PromiseOrValue<string>, _lusdTokenAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _borrowerOperationsAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    snapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        F_ETH_Snapshot: BigNumber;
        F_LUSD_Snapshot: BigNumber;
    }>;
    stake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalLQTYStaked(overrides?: CallOverrides): Promise<BigNumber>;
    troveManagerAddress(overrides?: CallOverrides): Promise<string>;
    unstake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<BigNumber>;
        F_ETH(overrides?: CallOverrides): Promise<BigNumber>;
        F_LUSD(overrides?: CallOverrides): Promise<BigNumber>;
        NAME(overrides?: CallOverrides): Promise<string>;
        activePoolAddress(overrides?: CallOverrides): Promise<string>;
        borrowerOperationsAddress(overrides?: CallOverrides): Promise<string>;
        getPendingETHGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPendingLUSDGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseF_ETH(_ETHFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        increaseF_LUSD(_LUSDFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        isOwner(overrides?: CallOverrides): Promise<boolean>;
        lqtyToken(overrides?: CallOverrides): Promise<string>;
        lusdToken(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        setAddresses(_lqtyTokenAddress: PromiseOrValue<string>, _lusdTokenAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _borrowerOperationsAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        snapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            F_ETH_Snapshot: BigNumber;
            F_LUSD_Snapshot: BigNumber;
        }>;
        stake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalLQTYStaked(overrides?: CallOverrides): Promise<BigNumber>;
        troveManagerAddress(overrides?: CallOverrides): Promise<string>;
        unstake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'ActivePoolAddressSet(address)'(_activePoolAddress?: null): ActivePoolAddressSetEventFilter;
        ActivePoolAddressSet(_activePoolAddress?: null): ActivePoolAddressSetEventFilter;
        'BorrowerOperationsAddressSet(address)'(_borrowerOperationsAddress?: null): BorrowerOperationsAddressSetEventFilter;
        BorrowerOperationsAddressSet(_borrowerOperationsAddress?: null): BorrowerOperationsAddressSetEventFilter;
        'EtherSent(address,uint256)'(_account?: null, _amount?: null): EtherSentEventFilter;
        EtherSent(_account?: null, _amount?: null): EtherSentEventFilter;
        'F_ETHUpdated(uint256)'(_F_ETH?: null): F_ETHUpdatedEventFilter;
        F_ETHUpdated(_F_ETH?: null): F_ETHUpdatedEventFilter;
        'F_LUSDUpdated(uint256)'(_F_LUSD?: null): F_LUSDUpdatedEventFilter;
        F_LUSDUpdated(_F_LUSD?: null): F_LUSDUpdatedEventFilter;
        'LQTYTokenAddressSet(address)'(_lqtyTokenAddress?: null): LQTYTokenAddressSetEventFilter;
        LQTYTokenAddressSet(_lqtyTokenAddress?: null): LQTYTokenAddressSetEventFilter;
        'LUSDTokenAddressSet(address)'(_lusdTokenAddress?: null): LUSDTokenAddressSetEventFilter;
        LUSDTokenAddressSet(_lusdTokenAddress?: null): LUSDTokenAddressSetEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'StakeChanged(address,uint256)'(staker?: PromiseOrValue<string> | null, newStake?: null): StakeChangedEventFilter;
        StakeChanged(staker?: PromiseOrValue<string> | null, newStake?: null): StakeChangedEventFilter;
        'StakerSnapshotsUpdated(address,uint256,uint256)'(_staker?: null, _F_ETH?: null, _F_LUSD?: null): StakerSnapshotsUpdatedEventFilter;
        StakerSnapshotsUpdated(_staker?: null, _F_ETH?: null, _F_LUSD?: null): StakerSnapshotsUpdatedEventFilter;
        'StakingGainsWithdrawn(address,uint256,uint256)'(staker?: PromiseOrValue<string> | null, LUSDGain?: null, ETHGain?: null): StakingGainsWithdrawnEventFilter;
        StakingGainsWithdrawn(staker?: PromiseOrValue<string> | null, LUSDGain?: null, ETHGain?: null): StakingGainsWithdrawnEventFilter;
        'TotalLQTYStakedUpdated(uint256)'(_totalLQTYStaked?: null): TotalLQTYStakedUpdatedEventFilter;
        TotalLQTYStakedUpdated(_totalLQTYStaked?: null): TotalLQTYStakedUpdatedEventFilter;
        'TroveManagerAddressSet(address)'(_troveManager?: null): TroveManagerAddressSetEventFilter;
        TroveManagerAddressSet(_troveManager?: null): TroveManagerAddressSetEventFilter;
    };
    estimateGas: {
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<BigNumber>;
        F_ETH(overrides?: CallOverrides): Promise<BigNumber>;
        F_LUSD(overrides?: CallOverrides): Promise<BigNumber>;
        NAME(overrides?: CallOverrides): Promise<BigNumber>;
        activePoolAddress(overrides?: CallOverrides): Promise<BigNumber>;
        borrowerOperationsAddress(overrides?: CallOverrides): Promise<BigNumber>;
        getPendingETHGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPendingLUSDGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseF_ETH(_ETHFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        increaseF_LUSD(_LUSDFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isOwner(overrides?: CallOverrides): Promise<BigNumber>;
        lqtyToken(overrides?: CallOverrides): Promise<BigNumber>;
        lusdToken(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        setAddresses(_lqtyTokenAddress: PromiseOrValue<string>, _lusdTokenAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _borrowerOperationsAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        snapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        stake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalLQTYStaked(overrides?: CallOverrides): Promise<BigNumber>;
        troveManagerAddress(overrides?: CallOverrides): Promise<BigNumber>;
        unstake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        F_ETH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        F_LUSD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        NAME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activePoolAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowerOperationsAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPendingETHGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPendingLUSDGain(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseF_ETH(_ETHFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        increaseF_LUSD(_LUSDFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lqtyToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lusdToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setAddresses(_lqtyTokenAddress: PromiseOrValue<string>, _lusdTokenAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _borrowerOperationsAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        snapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalLQTYStaked(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        troveManagerAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unstake(_LQTYamount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
