import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface LidoStethInterface extends utils.Interface {
    functions: {
        'resume()': FunctionFragment;
        'name()': FunctionFragment;
        'stop()': FunctionFragment;
        'hasInitialized()': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'initialize(address,address,address,address,address)': FunctionFragment;
        'getInsuranceFund()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'getSharesByPooledEth(uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'getOperators()': FunctionFragment;
        'getEVMScriptExecutor(bytes)': FunctionFragment;
        'decimals()': FunctionFragment;
        'getRecoveryVault()': FunctionFragment;
        'DEPOSIT_ROLE()': FunctionFragment;
        'DEPOSIT_SIZE()': FunctionFragment;
        'getTotalPooledEther()': FunctionFragment;
        'PAUSE_ROLE()': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'getTreasury()': FunctionFragment;
        'SET_ORACLE()': FunctionFragment;
        'isStopped()': FunctionFragment;
        'MANAGE_WITHDRAWAL_KEY()': FunctionFragment;
        'getBufferedEther()': FunctionFragment;
        'SIGNATURE_LENGTH()': FunctionFragment;
        'getWithdrawalCredentials()': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'getFeeDistribution()': FunctionFragment;
        'getPooledEthByShares(uint256)': FunctionFragment;
        'setOracle(address)': FunctionFragment;
        'allowRecoverability(address)': FunctionFragment;
        'appId()': FunctionFragment;
        'getOracle()': FunctionFragment;
        'getInitializationBlock()': FunctionFragment;
        'setFeeDistribution(uint16,uint16,uint16)': FunctionFragment;
        'setFee(uint16)': FunctionFragment;
        'depositBufferedEther(uint256)': FunctionFragment;
        'depositBufferedEther()': FunctionFragment;
        'symbol()': FunctionFragment;
        'MANAGE_FEE()': FunctionFragment;
        'transferToVault(address)': FunctionFragment;
        'SET_TREASURY()': FunctionFragment;
        'canPerform(address,bytes32,uint256[])': FunctionFragment;
        'submit(address)': FunctionFragment;
        'WITHDRAWAL_CREDENTIALS_LENGTH()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'getEVMScriptRegistry()': FunctionFragment;
        'PUBKEY_LENGTH()': FunctionFragment;
        'withdraw(uint256,bytes32)': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'getDepositContract()': FunctionFragment;
        'getBeaconStat()': FunctionFragment;
        'BURN_ROLE()': FunctionFragment;
        'setInsuranceFund(address)': FunctionFragment;
        'getFee()': FunctionFragment;
        'SET_INSURANCE_FUND()': FunctionFragment;
        'kernel()': FunctionFragment;
        'getTotalShares()': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'isPetrified()': FunctionFragment;
        'setWithdrawalCredentials(bytes32)': FunctionFragment;
        'burnShares(address,uint256)': FunctionFragment;
        'setTreasury(address)': FunctionFragment;
        'pushBeacon(uint256,uint256)': FunctionFragment;
        'sharesOf(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'resume' | 'name' | 'stop' | 'hasInitialized' | 'approve' | 'initialize' | 'getInsuranceFund' | 'totalSupply' | 'getSharesByPooledEth' | 'transferFrom' | 'getOperators' | 'getEVMScriptExecutor' | 'decimals' | 'getRecoveryVault' | 'DEPOSIT_ROLE' | 'DEPOSIT_SIZE' | 'getTotalPooledEther' | 'PAUSE_ROLE' | 'increaseAllowance' | 'getTreasury' | 'SET_ORACLE' | 'isStopped' | 'MANAGE_WITHDRAWAL_KEY' | 'getBufferedEther' | 'SIGNATURE_LENGTH' | 'getWithdrawalCredentials' | 'balanceOf' | 'getFeeDistribution' | 'getPooledEthByShares' | 'setOracle' | 'allowRecoverability' | 'appId' | 'getOracle' | 'getInitializationBlock' | 'setFeeDistribution' | 'setFee' | 'depositBufferedEther(uint256)' | 'depositBufferedEther()' | 'symbol' | 'MANAGE_FEE' | 'transferToVault' | 'SET_TREASURY' | 'canPerform' | 'submit' | 'WITHDRAWAL_CREDENTIALS_LENGTH' | 'decreaseAllowance' | 'getEVMScriptRegistry' | 'PUBKEY_LENGTH' | 'withdraw' | 'transfer' | 'getDepositContract' | 'getBeaconStat' | 'BURN_ROLE' | 'setInsuranceFund' | 'getFee' | 'SET_INSURANCE_FUND' | 'kernel' | 'getTotalShares' | 'allowance' | 'isPetrified' | 'setWithdrawalCredentials' | 'burnShares' | 'setTreasury' | 'pushBeacon' | 'sharesOf'): FunctionFragment;
    encodeFunctionData(functionFragment: 'resume', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'stop', values?: undefined): string;
    encodeFunctionData(functionFragment: 'hasInitialized', values?: undefined): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'getInsuranceFund', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getSharesByPooledEth', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getOperators', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getEVMScriptExecutor', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getRecoveryVault', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEPOSIT_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEPOSIT_SIZE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalPooledEther', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PAUSE_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTreasury', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SET_ORACLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isStopped', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MANAGE_WITHDRAWAL_KEY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getBufferedEther', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SIGNATURE_LENGTH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getWithdrawalCredentials', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getFeeDistribution', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPooledEthByShares', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setOracle', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'allowRecoverability', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'appId', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getOracle', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getInitializationBlock', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setFeeDistribution', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setFee', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositBufferedEther(uint256)', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositBufferedEther()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MANAGE_FEE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferToVault', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'SET_TREASURY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'canPerform', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'submit', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'WITHDRAWAL_CREDENTIALS_LENGTH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getEVMScriptRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PUBKEY_LENGTH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getDepositContract', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getBeaconStat', values?: undefined): string;
    encodeFunctionData(functionFragment: 'BURN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setInsuranceFund', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SET_INSURANCE_FUND', values?: undefined): string;
    encodeFunctionData(functionFragment: 'kernel', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalShares', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isPetrified', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setWithdrawalCredentials', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'burnShares', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setTreasury', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'pushBeacon', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'sharesOf', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'resume', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stop', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasInitialized', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getInsuranceFund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSharesByPooledEth', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getOperators', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEVMScriptExecutor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRecoveryVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEPOSIT_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEPOSIT_SIZE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalPooledEther', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PAUSE_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SET_ORACLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isStopped', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MANAGE_WITHDRAWAL_KEY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBufferedEther', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SIGNATURE_LENGTH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getWithdrawalCredentials', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFeeDistribution', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPooledEthByShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setOracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowRecoverability', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'appId', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getOracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getInitializationBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeDistribution', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositBufferedEther(uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositBufferedEther()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MANAGE_FEE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferToVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SET_TREASURY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'canPerform', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'submit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'WITHDRAWAL_CREDENTIALS_LENGTH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEVMScriptRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PUBKEY_LENGTH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDepositContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBeaconStat', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'BURN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setInsuranceFund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SET_INSURANCE_FUND', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'kernel', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isPetrified', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setWithdrawalCredentials', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burnShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pushBeacon', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sharesOf', data: BytesLike): Result;
    events: {
        'ScriptResult(address,bytes,bytes,bytes)': EventFragment;
        'RecoverToVault(address,address,uint256)': EventFragment;
        'Stopped()': EventFragment;
        'Resumed()': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'Approval(address,address,uint256)': EventFragment;
        'FeeSet(uint16)': EventFragment;
        'FeeDistributionSet(uint16,uint16,uint16)': EventFragment;
        'WithdrawalCredentialsSet(bytes32)': EventFragment;
        'Submitted(address,uint256,address)': EventFragment;
        'Unbuffered(uint256)': EventFragment;
        'Withdrawal(address,uint256,uint256,bytes32,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'ScriptResult'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RecoverToVault'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Stopped'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Resumed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeDistributionSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalCredentialsSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Submitted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unbuffered'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdrawal'): EventFragment;
}
export interface ScriptResultEventObject {
    executor: string;
    script: string;
    input: string;
    returnData: string;
}
export declare type ScriptResultEvent = TypedEvent<[string, string, string, string], ScriptResultEventObject>;
export declare type ScriptResultEventFilter = TypedEventFilter<ScriptResultEvent>;
export interface RecoverToVaultEventObject {
    vault: string;
    token: string;
    amount: BigNumber;
}
export declare type RecoverToVaultEvent = TypedEvent<[string, string, BigNumber], RecoverToVaultEventObject>;
export declare type RecoverToVaultEventFilter = TypedEventFilter<RecoverToVaultEvent>;
export interface StoppedEventObject {
}
export declare type StoppedEvent = TypedEvent<[], StoppedEventObject>;
export declare type StoppedEventFilter = TypedEventFilter<StoppedEvent>;
export interface ResumedEventObject {
}
export declare type ResumedEvent = TypedEvent<[], ResumedEventObject>;
export declare type ResumedEventFilter = TypedEventFilter<ResumedEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface ApprovalEventObject {
    owner: string;
    spender: string;
    value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface FeeSetEventObject {
    feeBasisPoints: number;
}
export declare type FeeSetEvent = TypedEvent<[number], FeeSetEventObject>;
export declare type FeeSetEventFilter = TypedEventFilter<FeeSetEvent>;
export interface FeeDistributionSetEventObject {
    treasuryFeeBasisPoints: number;
    insuranceFeeBasisPoints: number;
    operatorsFeeBasisPoints: number;
}
export declare type FeeDistributionSetEvent = TypedEvent<[number, number, number], FeeDistributionSetEventObject>;
export declare type FeeDistributionSetEventFilter = TypedEventFilter<FeeDistributionSetEvent>;
export interface WithdrawalCredentialsSetEventObject {
    withdrawalCredentials: string;
}
export declare type WithdrawalCredentialsSetEvent = TypedEvent<[string], WithdrawalCredentialsSetEventObject>;
export declare type WithdrawalCredentialsSetEventFilter = TypedEventFilter<WithdrawalCredentialsSetEvent>;
export interface SubmittedEventObject {
    sender: string;
    amount: BigNumber;
    referral: string;
}
export declare type SubmittedEvent = TypedEvent<[string, BigNumber, string], SubmittedEventObject>;
export declare type SubmittedEventFilter = TypedEventFilter<SubmittedEvent>;
export interface UnbufferedEventObject {
    amount: BigNumber;
}
export declare type UnbufferedEvent = TypedEvent<[BigNumber], UnbufferedEventObject>;
export declare type UnbufferedEventFilter = TypedEventFilter<UnbufferedEvent>;
export interface WithdrawalEventObject {
    sender: string;
    tokenAmount: BigNumber;
    sentFromBuffer: BigNumber;
    pubkeyHash: string;
    etherAmount: BigNumber;
}
export declare type WithdrawalEvent = TypedEvent<[string, BigNumber, BigNumber, string, BigNumber], WithdrawalEventObject>;
export declare type WithdrawalEventFilter = TypedEventFilter<WithdrawalEvent>;
export interface LidoSteth extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: LidoStethInterface;
    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: {
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        stop(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasInitialized(overrides?: CallOverrides): Promise<[boolean]>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(depositContract: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, _operators: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getInsuranceFund(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        getSharesByPooledEth(_ethAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getOperators(overrides?: CallOverrides): Promise<[string]>;
        getEVMScriptExecutor(_script: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        getRecoveryVault(overrides?: CallOverrides): Promise<[string]>;
        DEPOSIT_ROLE(overrides?: CallOverrides): Promise<[string]>;
        DEPOSIT_SIZE(overrides?: CallOverrides): Promise<[BigNumber]>;
        getTotalPooledEther(overrides?: CallOverrides): Promise<[BigNumber]>;
        PAUSE_ROLE(overrides?: CallOverrides): Promise<[string]>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getTreasury(overrides?: CallOverrides): Promise<[string]>;
        SET_ORACLE(overrides?: CallOverrides): Promise<[string]>;
        isStopped(overrides?: CallOverrides): Promise<[boolean]>;
        MANAGE_WITHDRAWAL_KEY(overrides?: CallOverrides): Promise<[string]>;
        getBufferedEther(overrides?: CallOverrides): Promise<[BigNumber]>;
        SIGNATURE_LENGTH(overrides?: CallOverrides): Promise<[BigNumber]>;
        getWithdrawalCredentials(overrides?: CallOverrides): Promise<[string]>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getFeeDistribution(overrides?: CallOverrides): Promise<[
            number,
            number,
            number
        ] & {
            treasuryFeeBasisPoints: number;
            insuranceFeeBasisPoints: number;
            operatorsFeeBasisPoints: number;
        }>;
        getPooledEthByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowRecoverability(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        appId(overrides?: CallOverrides): Promise<[string]>;
        getOracle(overrides?: CallOverrides): Promise<[string]>;
        getInitializationBlock(overrides?: CallOverrides): Promise<[BigNumber]>;
        setFeeDistribution(_treasuryFeeBasisPoints: PromiseOrValue<BigNumberish>, _insuranceFeeBasisPoints: PromiseOrValue<BigNumberish>, _operatorsFeeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFee(_feeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'depositBufferedEther(uint256)'(_maxDeposits: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'depositBufferedEther()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        MANAGE_FEE(overrides?: CallOverrides): Promise<[string]>;
        transferToVault(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        SET_TREASURY(overrides?: CallOverrides): Promise<[string]>;
        canPerform(_sender: PromiseOrValue<string>, _role: PromiseOrValue<BytesLike>, _params: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<[boolean]>;
        submit(_referral: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        WITHDRAWAL_CREDENTIALS_LENGTH(overrides?: CallOverrides): Promise<[BigNumber]>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getEVMScriptRegistry(overrides?: CallOverrides): Promise<[string]>;
        PUBKEY_LENGTH(overrides?: CallOverrides): Promise<[BigNumber]>;
        withdraw(_amount: PromiseOrValue<BigNumberish>, _pubkeyHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getDepositContract(overrides?: CallOverrides): Promise<[string]>;
        getBeaconStat(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            depositedValidators: BigNumber;
            beaconValidators: BigNumber;
            beaconBalance: BigNumber;
        }>;
        BURN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        setInsuranceFund(_insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getFee(overrides?: CallOverrides): Promise<[number] & {
            feeBasisPoints: number;
        }>;
        SET_INSURANCE_FUND(overrides?: CallOverrides): Promise<[string]>;
        kernel(overrides?: CallOverrides): Promise<[string]>;
        getTotalShares(overrides?: CallOverrides): Promise<[BigNumber]>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        isPetrified(overrides?: CallOverrides): Promise<[boolean]>;
        setWithdrawalCredentials(_withdrawalCredentials: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        burnShares(_account: PromiseOrValue<string>, _sharesAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pushBeacon(_beaconValidators: PromiseOrValue<BigNumberish>, _beaconBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    resume(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    stop(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasInitialized(overrides?: CallOverrides): Promise<boolean>;
    approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(depositContract: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, _operators: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getInsuranceFund(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    getSharesByPooledEth(_ethAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getOperators(overrides?: CallOverrides): Promise<string>;
    getEVMScriptExecutor(_script: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    decimals(overrides?: CallOverrides): Promise<number>;
    getRecoveryVault(overrides?: CallOverrides): Promise<string>;
    DEPOSIT_ROLE(overrides?: CallOverrides): Promise<string>;
    DEPOSIT_SIZE(overrides?: CallOverrides): Promise<BigNumber>;
    getTotalPooledEther(overrides?: CallOverrides): Promise<BigNumber>;
    PAUSE_ROLE(overrides?: CallOverrides): Promise<string>;
    increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getTreasury(overrides?: CallOverrides): Promise<string>;
    SET_ORACLE(overrides?: CallOverrides): Promise<string>;
    isStopped(overrides?: CallOverrides): Promise<boolean>;
    MANAGE_WITHDRAWAL_KEY(overrides?: CallOverrides): Promise<string>;
    getBufferedEther(overrides?: CallOverrides): Promise<BigNumber>;
    SIGNATURE_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
    getWithdrawalCredentials(overrides?: CallOverrides): Promise<string>;
    balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getFeeDistribution(overrides?: CallOverrides): Promise<[
        number,
        number,
        number
    ] & {
        treasuryFeeBasisPoints: number;
        insuranceFeeBasisPoints: number;
        operatorsFeeBasisPoints: number;
    }>;
    getPooledEthByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowRecoverability(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    appId(overrides?: CallOverrides): Promise<string>;
    getOracle(overrides?: CallOverrides): Promise<string>;
    getInitializationBlock(overrides?: CallOverrides): Promise<BigNumber>;
    setFeeDistribution(_treasuryFeeBasisPoints: PromiseOrValue<BigNumberish>, _insuranceFeeBasisPoints: PromiseOrValue<BigNumberish>, _operatorsFeeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFee(_feeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'depositBufferedEther(uint256)'(_maxDeposits: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'depositBufferedEther()'(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    symbol(overrides?: CallOverrides): Promise<string>;
    MANAGE_FEE(overrides?: CallOverrides): Promise<string>;
    transferToVault(_token: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    SET_TREASURY(overrides?: CallOverrides): Promise<string>;
    canPerform(_sender: PromiseOrValue<string>, _role: PromiseOrValue<BytesLike>, _params: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<boolean>;
    submit(_referral: PromiseOrValue<string>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    WITHDRAWAL_CREDENTIALS_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
    decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getEVMScriptRegistry(overrides?: CallOverrides): Promise<string>;
    PUBKEY_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
    withdraw(_amount: PromiseOrValue<BigNumberish>, _pubkeyHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getDepositContract(overrides?: CallOverrides): Promise<string>;
    getBeaconStat(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        depositedValidators: BigNumber;
        beaconValidators: BigNumber;
        beaconBalance: BigNumber;
    }>;
    BURN_ROLE(overrides?: CallOverrides): Promise<string>;
    setInsuranceFund(_insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getFee(overrides?: CallOverrides): Promise<number>;
    SET_INSURANCE_FUND(overrides?: CallOverrides): Promise<string>;
    kernel(overrides?: CallOverrides): Promise<string>;
    getTotalShares(overrides?: CallOverrides): Promise<BigNumber>;
    allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    isPetrified(overrides?: CallOverrides): Promise<boolean>;
    setWithdrawalCredentials(_withdrawalCredentials: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    burnShares(_account: PromiseOrValue<string>, _sharesAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pushBeacon(_beaconValidators: PromiseOrValue<BigNumberish>, _beaconBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        resume(overrides?: CallOverrides): Promise<void>;
        name(overrides?: CallOverrides): Promise<string>;
        stop(overrides?: CallOverrides): Promise<void>;
        hasInitialized(overrides?: CallOverrides): Promise<boolean>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        initialize(depositContract: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, _operators: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _insuranceFund: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getInsuranceFund(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        getSharesByPooledEth(_ethAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        getOperators(overrides?: CallOverrides): Promise<string>;
        getEVMScriptExecutor(_script: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        decimals(overrides?: CallOverrides): Promise<number>;
        getRecoveryVault(overrides?: CallOverrides): Promise<string>;
        DEPOSIT_ROLE(overrides?: CallOverrides): Promise<string>;
        DEPOSIT_SIZE(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalPooledEther(overrides?: CallOverrides): Promise<BigNumber>;
        PAUSE_ROLE(overrides?: CallOverrides): Promise<string>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        getTreasury(overrides?: CallOverrides): Promise<string>;
        SET_ORACLE(overrides?: CallOverrides): Promise<string>;
        isStopped(overrides?: CallOverrides): Promise<boolean>;
        MANAGE_WITHDRAWAL_KEY(overrides?: CallOverrides): Promise<string>;
        getBufferedEther(overrides?: CallOverrides): Promise<BigNumber>;
        SIGNATURE_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawalCredentials(overrides?: CallOverrides): Promise<string>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getFeeDistribution(overrides?: CallOverrides): Promise<[
            number,
            number,
            number
        ] & {
            treasuryFeeBasisPoints: number;
            insuranceFeeBasisPoints: number;
            operatorsFeeBasisPoints: number;
        }>;
        getPooledEthByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        allowRecoverability(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        appId(overrides?: CallOverrides): Promise<string>;
        getOracle(overrides?: CallOverrides): Promise<string>;
        getInitializationBlock(overrides?: CallOverrides): Promise<BigNumber>;
        setFeeDistribution(_treasuryFeeBasisPoints: PromiseOrValue<BigNumberish>, _insuranceFeeBasisPoints: PromiseOrValue<BigNumberish>, _operatorsFeeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setFee(_feeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'depositBufferedEther(uint256)'(_maxDeposits: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'depositBufferedEther()'(overrides?: CallOverrides): Promise<void>;
        symbol(overrides?: CallOverrides): Promise<string>;
        MANAGE_FEE(overrides?: CallOverrides): Promise<string>;
        transferToVault(_token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        SET_TREASURY(overrides?: CallOverrides): Promise<string>;
        canPerform(_sender: PromiseOrValue<string>, _role: PromiseOrValue<BytesLike>, _params: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<boolean>;
        submit(_referral: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        WITHDRAWAL_CREDENTIALS_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        getEVMScriptRegistry(overrides?: CallOverrides): Promise<string>;
        PUBKEY_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_amount: PromiseOrValue<BigNumberish>, _pubkeyHash: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        getDepositContract(overrides?: CallOverrides): Promise<string>;
        getBeaconStat(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            depositedValidators: BigNumber;
            beaconValidators: BigNumber;
            beaconBalance: BigNumber;
        }>;
        BURN_ROLE(overrides?: CallOverrides): Promise<string>;
        setInsuranceFund(_insuranceFund: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getFee(overrides?: CallOverrides): Promise<number>;
        SET_INSURANCE_FUND(overrides?: CallOverrides): Promise<string>;
        kernel(overrides?: CallOverrides): Promise<string>;
        getTotalShares(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isPetrified(overrides?: CallOverrides): Promise<boolean>;
        setWithdrawalCredentials(_withdrawalCredentials: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        burnShares(_account: PromiseOrValue<string>, _sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        pushBeacon(_beaconValidators: PromiseOrValue<BigNumberish>, _beaconBalance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'ScriptResult(address,bytes,bytes,bytes)'(executor?: PromiseOrValue<string> | null, script?: null, input?: null, returnData?: null): ScriptResultEventFilter;
        ScriptResult(executor?: PromiseOrValue<string> | null, script?: null, input?: null, returnData?: null): ScriptResultEventFilter;
        'RecoverToVault(address,address,uint256)'(vault?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): RecoverToVaultEventFilter;
        RecoverToVault(vault?: PromiseOrValue<string> | null, token?: PromiseOrValue<string> | null, amount?: null): RecoverToVaultEventFilter;
        'Stopped()'(): StoppedEventFilter;
        Stopped(): StoppedEventFilter;
        'Resumed()'(): ResumedEventFilter;
        Resumed(): ResumedEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'FeeSet(uint16)'(feeBasisPoints?: null): FeeSetEventFilter;
        FeeSet(feeBasisPoints?: null): FeeSetEventFilter;
        'FeeDistributionSet(uint16,uint16,uint16)'(treasuryFeeBasisPoints?: null, insuranceFeeBasisPoints?: null, operatorsFeeBasisPoints?: null): FeeDistributionSetEventFilter;
        FeeDistributionSet(treasuryFeeBasisPoints?: null, insuranceFeeBasisPoints?: null, operatorsFeeBasisPoints?: null): FeeDistributionSetEventFilter;
        'WithdrawalCredentialsSet(bytes32)'(withdrawalCredentials?: null): WithdrawalCredentialsSetEventFilter;
        WithdrawalCredentialsSet(withdrawalCredentials?: null): WithdrawalCredentialsSetEventFilter;
        'Submitted(address,uint256,address)'(sender?: PromiseOrValue<string> | null, amount?: null, referral?: null): SubmittedEventFilter;
        Submitted(sender?: PromiseOrValue<string> | null, amount?: null, referral?: null): SubmittedEventFilter;
        'Unbuffered(uint256)'(amount?: null): UnbufferedEventFilter;
        Unbuffered(amount?: null): UnbufferedEventFilter;
        'Withdrawal(address,uint256,uint256,bytes32,uint256)'(sender?: PromiseOrValue<string> | null, tokenAmount?: null, sentFromBuffer?: null, pubkeyHash?: PromiseOrValue<BytesLike> | null, etherAmount?: null): WithdrawalEventFilter;
        Withdrawal(sender?: PromiseOrValue<string> | null, tokenAmount?: null, sentFromBuffer?: null, pubkeyHash?: PromiseOrValue<BytesLike> | null, etherAmount?: null): WithdrawalEventFilter;
    };
    estimateGas: {
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        stop(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasInitialized(overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(depositContract: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, _operators: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getInsuranceFund(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        getSharesByPooledEth(_ethAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getOperators(overrides?: CallOverrides): Promise<BigNumber>;
        getEVMScriptExecutor(_script: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        getRecoveryVault(overrides?: CallOverrides): Promise<BigNumber>;
        DEPOSIT_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        DEPOSIT_SIZE(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalPooledEther(overrides?: CallOverrides): Promise<BigNumber>;
        PAUSE_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getTreasury(overrides?: CallOverrides): Promise<BigNumber>;
        SET_ORACLE(overrides?: CallOverrides): Promise<BigNumber>;
        isStopped(overrides?: CallOverrides): Promise<BigNumber>;
        MANAGE_WITHDRAWAL_KEY(overrides?: CallOverrides): Promise<BigNumber>;
        getBufferedEther(overrides?: CallOverrides): Promise<BigNumber>;
        SIGNATURE_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawalCredentials(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getFeeDistribution(overrides?: CallOverrides): Promise<BigNumber>;
        getPooledEthByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowRecoverability(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        appId(overrides?: CallOverrides): Promise<BigNumber>;
        getOracle(overrides?: CallOverrides): Promise<BigNumber>;
        getInitializationBlock(overrides?: CallOverrides): Promise<BigNumber>;
        setFeeDistribution(_treasuryFeeBasisPoints: PromiseOrValue<BigNumberish>, _insuranceFeeBasisPoints: PromiseOrValue<BigNumberish>, _operatorsFeeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFee(_feeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'depositBufferedEther(uint256)'(_maxDeposits: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'depositBufferedEther()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        MANAGE_FEE(overrides?: CallOverrides): Promise<BigNumber>;
        transferToVault(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        SET_TREASURY(overrides?: CallOverrides): Promise<BigNumber>;
        canPerform(_sender: PromiseOrValue<string>, _role: PromiseOrValue<BytesLike>, _params: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        submit(_referral: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        WITHDRAWAL_CREDENTIALS_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getEVMScriptRegistry(overrides?: CallOverrides): Promise<BigNumber>;
        PUBKEY_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_amount: PromiseOrValue<BigNumberish>, _pubkeyHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getDepositContract(overrides?: CallOverrides): Promise<BigNumber>;
        getBeaconStat(overrides?: CallOverrides): Promise<BigNumber>;
        BURN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        setInsuranceFund(_insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getFee(overrides?: CallOverrides): Promise<BigNumber>;
        SET_INSURANCE_FUND(overrides?: CallOverrides): Promise<BigNumber>;
        kernel(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalShares(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isPetrified(overrides?: CallOverrides): Promise<BigNumber>;
        setWithdrawalCredentials(_withdrawalCredentials: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        burnShares(_account: PromiseOrValue<string>, _sharesAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pushBeacon(_beaconValidators: PromiseOrValue<BigNumberish>, _beaconBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stop(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasInitialized(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(depositContract: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, _operators: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getInsuranceFund(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getSharesByPooledEth(_ethAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getOperators(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEVMScriptExecutor(_script: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRecoveryVault(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEPOSIT_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEPOSIT_SIZE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalPooledEther(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PAUSE_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getTreasury(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SET_ORACLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isStopped(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MANAGE_WITHDRAWAL_KEY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBufferedEther(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SIGNATURE_LENGTH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWithdrawalCredentials(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getFeeDistribution(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPooledEthByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowRecoverability(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        appId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getOracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getInitializationBlock(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setFeeDistribution(_treasuryFeeBasisPoints: PromiseOrValue<BigNumberish>, _insuranceFeeBasisPoints: PromiseOrValue<BigNumberish>, _operatorsFeeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFee(_feeBasisPoints: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'depositBufferedEther(uint256)'(_maxDeposits: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'depositBufferedEther()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MANAGE_FEE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferToVault(_token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        SET_TREASURY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        canPerform(_sender: PromiseOrValue<string>, _role: PromiseOrValue<BytesLike>, _params: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        submit(_referral: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        WITHDRAWAL_CREDENTIALS_LENGTH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getEVMScriptRegistry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PUBKEY_LENGTH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(_amount: PromiseOrValue<BigNumberish>, _pubkeyHash: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getDepositContract(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBeaconStat(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        BURN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setInsuranceFund(_insuranceFund: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SET_INSURANCE_FUND(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        kernel(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalShares(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isPetrified(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setWithdrawalCredentials(_withdrawalCredentials: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        burnShares(_account: PromiseOrValue<string>, _sharesAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pushBeacon(_beaconValidators: PromiseOrValue<BigNumberish>, _beaconBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
