import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare namespace StakeUIHelperI {
    type AssetUIDataStruct = {
        stakeTokenTotalSupply: PromiseOrValue<BigNumberish>;
        stakeCooldownSeconds: PromiseOrValue<BigNumberish>;
        stakeUnstakeWindow: PromiseOrValue<BigNumberish>;
        stakeTokenPriceEth: PromiseOrValue<BigNumberish>;
        rewardTokenPriceEth: PromiseOrValue<BigNumberish>;
        stakeApy: PromiseOrValue<BigNumberish>;
        distributionPerSecond: PromiseOrValue<BigNumberish>;
        distributionEnd: PromiseOrValue<BigNumberish>;
        stakeTokenUserBalance: PromiseOrValue<BigNumberish>;
        underlyingTokenUserBalance: PromiseOrValue<BigNumberish>;
        userCooldown: PromiseOrValue<BigNumberish>;
        userIncentivesToClaim: PromiseOrValue<BigNumberish>;
        userPermitNonce: PromiseOrValue<BigNumberish>;
    };
    type AssetUIDataStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        stakeTokenTotalSupply: BigNumber;
        stakeCooldownSeconds: BigNumber;
        stakeUnstakeWindow: BigNumber;
        stakeTokenPriceEth: BigNumber;
        rewardTokenPriceEth: BigNumber;
        stakeApy: BigNumber;
        distributionPerSecond: BigNumber;
        distributionEnd: BigNumber;
        stakeTokenUserBalance: BigNumber;
        underlyingTokenUserBalance: BigNumber;
        userCooldown: BigNumber;
        userIncentivesToClaim: BigNumber;
        userPermitNonce: BigNumber;
    };
}
export interface AaveStkApyHelperInterface extends utils.Interface {
    functions: {
        'AAVE()': FunctionFragment;
        'BPT()': FunctionFragment;
        'BPT_PRICE_FEED()': FunctionFragment;
        'PRICE_ORACLE()': FunctionFragment;
        'STAKED_AAVE()': FunctionFragment;
        'STAKED_BPT()': FunctionFragment;
        'getStkAaveData(address)': FunctionFragment;
        'getStkBptData(address)': FunctionFragment;
        'getUserUIData(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'AAVE' | 'BPT' | 'BPT_PRICE_FEED' | 'PRICE_ORACLE' | 'STAKED_AAVE' | 'STAKED_BPT' | 'getStkAaveData' | 'getStkBptData' | 'getUserUIData'): FunctionFragment;
    encodeFunctionData(functionFragment: 'AAVE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'BPT', values?: undefined): string;
    encodeFunctionData(functionFragment: 'BPT_PRICE_FEED', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PRICE_ORACLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'STAKED_AAVE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'STAKED_BPT', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getStkAaveData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getStkBptData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserUIData', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'AAVE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'BPT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'BPT_PRICE_FEED', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PRICE_ORACLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'STAKED_AAVE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'STAKED_BPT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStkAaveData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStkBptData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserUIData', data: BytesLike): Result;
    events: {};
}
export interface AaveStkApyHelper extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AaveStkApyHelperInterface;
    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: {
        AAVE(overrides?: CallOverrides): Promise<[string]>;
        BPT(overrides?: CallOverrides): Promise<[string]>;
        BPT_PRICE_FEED(overrides?: CallOverrides): Promise<[string]>;
        PRICE_ORACLE(overrides?: CallOverrides): Promise<[string]>;
        STAKED_AAVE(overrides?: CallOverrides): Promise<[string]>;
        STAKED_BPT(overrides?: CallOverrides): Promise<[string]>;
        getStkAaveData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[StakeUIHelperI.AssetUIDataStructOutput]>;
        getStkBptData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[StakeUIHelperI.AssetUIDataStructOutput]>;
        getUserUIData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[StakeUIHelperI.AssetUIDataStructOutput, StakeUIHelperI.AssetUIDataStructOutput, BigNumber]>;
    };
    AAVE(overrides?: CallOverrides): Promise<string>;
    BPT(overrides?: CallOverrides): Promise<string>;
    BPT_PRICE_FEED(overrides?: CallOverrides): Promise<string>;
    PRICE_ORACLE(overrides?: CallOverrides): Promise<string>;
    STAKED_AAVE(overrides?: CallOverrides): Promise<string>;
    STAKED_BPT(overrides?: CallOverrides): Promise<string>;
    getStkAaveData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<StakeUIHelperI.AssetUIDataStructOutput>;
    getStkBptData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<StakeUIHelperI.AssetUIDataStructOutput>;
    getUserUIData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[StakeUIHelperI.AssetUIDataStructOutput, StakeUIHelperI.AssetUIDataStructOutput, BigNumber]>;
    callStatic: {
        AAVE(overrides?: CallOverrides): Promise<string>;
        BPT(overrides?: CallOverrides): Promise<string>;
        BPT_PRICE_FEED(overrides?: CallOverrides): Promise<string>;
        PRICE_ORACLE(overrides?: CallOverrides): Promise<string>;
        STAKED_AAVE(overrides?: CallOverrides): Promise<string>;
        STAKED_BPT(overrides?: CallOverrides): Promise<string>;
        getStkAaveData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<StakeUIHelperI.AssetUIDataStructOutput>;
        getStkBptData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<StakeUIHelperI.AssetUIDataStructOutput>;
        getUserUIData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[StakeUIHelperI.AssetUIDataStructOutput, StakeUIHelperI.AssetUIDataStructOutput, BigNumber]>;
    };
    filters: {};
    estimateGas: {
        AAVE(overrides?: CallOverrides): Promise<BigNumber>;
        BPT(overrides?: CallOverrides): Promise<BigNumber>;
        BPT_PRICE_FEED(overrides?: CallOverrides): Promise<BigNumber>;
        PRICE_ORACLE(overrides?: CallOverrides): Promise<BigNumber>;
        STAKED_AAVE(overrides?: CallOverrides): Promise<BigNumber>;
        STAKED_BPT(overrides?: CallOverrides): Promise<BigNumber>;
        getStkAaveData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getStkBptData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserUIData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        AAVE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        BPT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        BPT_PRICE_FEED(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PRICE_ORACLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        STAKED_AAVE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        STAKED_BPT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStkAaveData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStkBptData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserUIData(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
