import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare namespace Types {
    type RelaySpecStruct = {
        maxValidatorsPerLedger: PromiseOrValue<BigNumberish>;
        minNominatorBalance: PromiseOrValue<BigNumberish>;
        ledgerMinimumActiveBalance: PromiseOrValue<BigNumberish>;
        maxUnlockingChunks: PromiseOrValue<BigNumberish>;
    };
    type RelaySpecStructOutput = [number, BigNumber, BigNumber, BigNumber] & {
        maxValidatorsPerLedger: number;
        minNominatorBalance: BigNumber;
        ledgerMinimumActiveBalance: BigNumber;
        maxUnlockingChunks: BigNumber;
    };
}
export interface LidoStksmInterface extends utils.Interface {
    functions: {
        'AUTH_MANAGER()': FunctionFragment;
        'LEDGER_BEACON()': FunctionFragment;
        'MAX_ALLOWABLE_DIFFERENCE()': FunctionFragment;
        'ORACLE_MASTER()': FunctionFragment;
        'addLedger(bytes32,bytes32,uint16)': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'bufferedDeposits()': FunctionFragment;
        'bufferedRedeems()': FunctionFragment;
        'claimUnbonded()': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'deposit(uint256,address)': FunctionFragment;
        'deposit(uint256)': FunctionFragment;
        'depositCap()': FunctionFragment;
        'disableLedger(address)': FunctionFragment;
        'distributeLosses(uint256,uint256)': FunctionFragment;
        'distributeRewards(uint256,uint256)': FunctionFragment;
        'emergencyPauseLedger(address)': FunctionFragment;
        'findLedger(bytes32)': FunctionFragment;
        'flushStakes()': FunctionFragment;
        'fundRaisedBalance()': FunctionFragment;
        'getLedgerAddresses()': FunctionFragment;
        'getPooledKSMByShares(uint256)': FunctionFragment;
        'getSharesByPooledKSM(uint256)': FunctionFragment;
        'getStashAccounts()': FunctionFragment;
        'getTotalPooledKSM()': FunctionFragment;
        'getTotalShares()': FunctionFragment;
        'getUnbonded(address)': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'initialize(address,address,address,address,address,address,address,uint256,uint128)': FunctionFragment;
        'ledgerBorrow(address)': FunctionFragment;
        'ledgerStake(address)': FunctionFragment;
        'name()': FunctionFragment;
        'nominateBatch(bytes32[],bytes32[][])': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'redeem(uint256)': FunctionFragment;
        'removeLedger(address)': FunctionFragment;
        'resume()': FunctionFragment;
        'resumeLedger(address)': FunctionFragment;
        'setDepositCap(uint256)': FunctionFragment;
        'setDevelopers(address)': FunctionFragment;
        'setFee(uint16,uint16,uint16)': FunctionFragment;
        'setLedgerBeacon(address)': FunctionFragment;
        'setLedgerFactory(address)': FunctionFragment;
        'setMaxAllowableDifference(uint128)': FunctionFragment;
        'setRelaySpec((uint16,uint128,uint128,uint256))': FunctionFragment;
        'setTreasury(address)': FunctionFragment;
        'sharesOf(address)': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'transferFromLedger(uint256,uint256)': FunctionFragment;
        'transferToLedger(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'AUTH_MANAGER' | 'LEDGER_BEACON' | 'MAX_ALLOWABLE_DIFFERENCE' | 'ORACLE_MASTER' | 'addLedger' | 'allowance' | 'approve' | 'balanceOf' | 'bufferedDeposits' | 'bufferedRedeems' | 'claimUnbonded' | 'decimals' | 'decreaseAllowance' | 'deposit(uint256,address)' | 'deposit(uint256)' | 'depositCap' | 'disableLedger' | 'distributeLosses' | 'distributeRewards' | 'emergencyPauseLedger' | 'findLedger' | 'flushStakes' | 'fundRaisedBalance' | 'getLedgerAddresses' | 'getPooledKSMByShares' | 'getSharesByPooledKSM' | 'getStashAccounts' | 'getTotalPooledKSM' | 'getTotalShares' | 'getUnbonded' | 'increaseAllowance' | 'initialize' | 'ledgerBorrow' | 'ledgerStake' | 'name' | 'nominateBatch' | 'pause' | 'paused' | 'redeem' | 'removeLedger' | 'resume' | 'resumeLedger' | 'setDepositCap' | 'setDevelopers' | 'setFee' | 'setLedgerBeacon' | 'setLedgerFactory' | 'setMaxAllowableDifference' | 'setRelaySpec' | 'setTreasury' | 'sharesOf' | 'symbol' | 'totalSupply' | 'transfer' | 'transferFrom' | 'transferFromLedger' | 'transferToLedger'): FunctionFragment;
    encodeFunctionData(functionFragment: 'AUTH_MANAGER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'LEDGER_BEACON', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_ALLOWABLE_DIFFERENCE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ORACLE_MASTER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addLedger', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'bufferedDeposits', values?: undefined): string;
    encodeFunctionData(functionFragment: 'bufferedRedeems', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimUnbonded', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deposit(uint256,address)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deposit(uint256)', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositCap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'disableLedger', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'distributeLosses', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'distributeRewards', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'emergencyPauseLedger', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'findLedger', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'flushStakes', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fundRaisedBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getLedgerAddresses', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPooledKSMByShares', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getSharesByPooledKSM', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getStashAccounts', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalPooledKSM', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalShares', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getUnbonded', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'ledgerBorrow', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'ledgerStake', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nominateBatch', values: [PromiseOrValue<BytesLike>[], PromiseOrValue<BytesLike>[][]]): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'redeem', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'removeLedger', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'resume', values?: undefined): string;
    encodeFunctionData(functionFragment: 'resumeLedger', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDepositCap', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setDevelopers', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFee', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setLedgerBeacon', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setLedgerFactory', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setMaxAllowableDifference', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setRelaySpec', values: [Types.RelaySpecStruct]): string;
    encodeFunctionData(functionFragment: 'setTreasury', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'sharesOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFromLedger', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferToLedger', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'AUTH_MANAGER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'LEDGER_BEACON', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_ALLOWABLE_DIFFERENCE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ORACLE_MASTER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bufferedDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bufferedRedeems', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimUnbonded', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit(uint256,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit(uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disableLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distributeLosses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distributeRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergencyPauseLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'findLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'flushStakes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundRaisedBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getLedgerAddresses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPooledKSMByShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSharesByPooledKSM', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStashAccounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalPooledKSM', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUnbonded', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ledgerBorrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ledgerStake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nominateBatch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'redeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'resume', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'resumeLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDepositCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDevelopers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLedgerBeacon', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLedgerFactory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxAllowableDifference', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRelaySpec', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sharesOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFromLedger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferToLedger', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'Claimed(address,uint256)': EventFragment;
        'Deposited(address,uint256)': EventFragment;
        'FeeSet(uint16,uint16,uint16,uint16)': EventFragment;
        'LedgerAdd(address,bytes32,bytes32)': EventFragment;
        'LedgerDisable(address)': EventFragment;
        'LedgerPaused(address)': EventFragment;
        'LedgerRemove(address)': EventFragment;
        'LedgerResumed(address)': EventFragment;
        'Losses(address,uint256,uint256)': EventFragment;
        'Paused(address)': EventFragment;
        'Redeemed(address,uint256)': EventFragment;
        'Referral(address,address,uint256,uint256)': EventFragment;
        'Rewards(address,uint256,uint256)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'Unpaused(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Claimed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LedgerAdd'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LedgerDisable'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LedgerPaused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LedgerRemove'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LedgerResumed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Losses'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Redeemed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Referral'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Rewards'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
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 ClaimedEventObject {
    receiver: string;
    amount: BigNumber;
}
export declare type ClaimedEvent = TypedEvent<[string, BigNumber], ClaimedEventObject>;
export declare type ClaimedEventFilter = TypedEventFilter<ClaimedEvent>;
export interface DepositedEventObject {
    sender: string;
    amount: BigNumber;
}
export declare type DepositedEvent = TypedEvent<[string, BigNumber], DepositedEventObject>;
export declare type DepositedEventFilter = TypedEventFilter<DepositedEvent>;
export interface FeeSetEventObject {
    fee: number;
    feeOperatorsBP: number;
    feeTreasuryBP: number;
    feeDevelopersBP: number;
}
export declare type FeeSetEvent = TypedEvent<[number, number, number, number], FeeSetEventObject>;
export declare type FeeSetEventFilter = TypedEventFilter<FeeSetEvent>;
export interface LedgerAddEventObject {
    addr: string;
    stashAccount: string;
    controllerAccount: string;
}
export declare type LedgerAddEvent = TypedEvent<[string, string, string], LedgerAddEventObject>;
export declare type LedgerAddEventFilter = TypedEventFilter<LedgerAddEvent>;
export interface LedgerDisableEventObject {
    addr: string;
}
export declare type LedgerDisableEvent = TypedEvent<[string], LedgerDisableEventObject>;
export declare type LedgerDisableEventFilter = TypedEventFilter<LedgerDisableEvent>;
export interface LedgerPausedEventObject {
    addr: string;
}
export declare type LedgerPausedEvent = TypedEvent<[string], LedgerPausedEventObject>;
export declare type LedgerPausedEventFilter = TypedEventFilter<LedgerPausedEvent>;
export interface LedgerRemoveEventObject {
    addr: string;
}
export declare type LedgerRemoveEvent = TypedEvent<[string], LedgerRemoveEventObject>;
export declare type LedgerRemoveEventFilter = TypedEventFilter<LedgerRemoveEvent>;
export interface LedgerResumedEventObject {
    addr: string;
}
export declare type LedgerResumedEvent = TypedEvent<[string], LedgerResumedEventObject>;
export declare type LedgerResumedEventFilter = TypedEventFilter<LedgerResumedEvent>;
export interface LossesEventObject {
    ledger: string;
    losses: BigNumber;
    balance: BigNumber;
}
export declare type LossesEvent = TypedEvent<[string, BigNumber, BigNumber], LossesEventObject>;
export declare type LossesEventFilter = TypedEventFilter<LossesEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RedeemedEventObject {
    receiver: string;
    amount: BigNumber;
}
export declare type RedeemedEvent = TypedEvent<[string, BigNumber], RedeemedEventObject>;
export declare type RedeemedEventFilter = TypedEventFilter<RedeemedEvent>;
export interface ReferralEventObject {
    userAddr: string;
    referralAddr: string;
    amount: BigNumber;
    shares: BigNumber;
}
export declare type ReferralEvent = TypedEvent<[string, string, BigNumber, BigNumber], ReferralEventObject>;
export declare type ReferralEventFilter = TypedEventFilter<ReferralEvent>;
export interface RewardsEventObject {
    ledger: string;
    rewards: BigNumber;
    balance: BigNumber;
}
export declare type RewardsEvent = TypedEvent<[string, BigNumber, BigNumber], RewardsEventObject>;
export declare type RewardsEventFilter = TypedEventFilter<RewardsEvent>;
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 UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface LidoStksm extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: LidoStksmInterface;
    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: {
        AUTH_MANAGER(overrides?: CallOverrides): Promise<[string]>;
        LEDGER_BEACON(overrides?: CallOverrides): Promise<[string]>;
        MAX_ALLOWABLE_DIFFERENCE(overrides?: CallOverrides): Promise<[BigNumber]>;
        ORACLE_MASTER(overrides?: CallOverrides): Promise<[string]>;
        addLedger(_stashAccount: PromiseOrValue<BytesLike>, _controllerAccount: PromiseOrValue<BytesLike>, _index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        bufferedDeposits(overrides?: CallOverrides): Promise<[BigNumber]>;
        bufferedRedeems(overrides?: CallOverrides): Promise<[BigNumber]>;
        claimUnbonded(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'deposit(uint256,address)'(_amount: PromiseOrValue<BigNumberish>, _referral: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'deposit(uint256)'(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositCap(overrides?: CallOverrides): Promise<[BigNumber]>;
        disableLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        distributeLosses(_totalLosses: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        distributeRewards(_totalRewards: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emergencyPauseLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        findLedger(_stashAccount: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        flushStakes(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        fundRaisedBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        getLedgerAddresses(overrides?: CallOverrides): Promise<[string[]]>;
        getPooledKSMByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getSharesByPooledKSM(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getStashAccounts(overrides?: CallOverrides): Promise<[string[]]>;
        getTotalPooledKSM(overrides?: CallOverrides): Promise<[BigNumber]>;
        getTotalShares(overrides?: CallOverrides): Promise<[BigNumber]>;
        getUnbonded(_holder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            waiting: BigNumber;
            unbonded: BigNumber;
        }>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_authManager: PromiseOrValue<string>, _vKSM: PromiseOrValue<string>, _controller: PromiseOrValue<string>, _developers: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _oracleMaster: PromiseOrValue<string>, _withdrawal: PromiseOrValue<string>, _depositCap: PromiseOrValue<BigNumberish>, _maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        ledgerBorrow(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        ledgerStake(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        nominateBatch(_stashAccounts: PromiseOrValue<BytesLike>[], _validators: PromiseOrValue<BytesLike>[][], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        redeem(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        resumeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDepositCap(_depositCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDevelopers(_developers: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFee(_feeOperators: PromiseOrValue<BigNumberish>, _feeTreasury: PromiseOrValue<BigNumberish>, _feeDevelopers: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLedgerBeacon(_ledgerBeacon: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLedgerFactory(_ledgerFactory: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxAllowableDifference(_maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRelaySpec(_relaySpec: Types.RelaySpecStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFromLedger(_amount: PromiseOrValue<BigNumberish>, _excess: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferToLedger(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    AUTH_MANAGER(overrides?: CallOverrides): Promise<string>;
    LEDGER_BEACON(overrides?: CallOverrides): Promise<string>;
    MAX_ALLOWABLE_DIFFERENCE(overrides?: CallOverrides): Promise<BigNumber>;
    ORACLE_MASTER(overrides?: CallOverrides): Promise<string>;
    addLedger(_stashAccount: PromiseOrValue<BytesLike>, _controllerAccount: PromiseOrValue<BytesLike>, _index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    bufferedDeposits(overrides?: CallOverrides): Promise<BigNumber>;
    bufferedRedeems(overrides?: CallOverrides): Promise<BigNumber>;
    claimUnbonded(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'deposit(uint256,address)'(_amount: PromiseOrValue<BigNumberish>, _referral: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'deposit(uint256)'(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositCap(overrides?: CallOverrides): Promise<BigNumber>;
    disableLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    distributeLosses(_totalLosses: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    distributeRewards(_totalRewards: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emergencyPauseLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    findLedger(_stashAccount: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    flushStakes(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    fundRaisedBalance(overrides?: CallOverrides): Promise<BigNumber>;
    getLedgerAddresses(overrides?: CallOverrides): Promise<string[]>;
    getPooledKSMByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getSharesByPooledKSM(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getStashAccounts(overrides?: CallOverrides): Promise<string[]>;
    getTotalPooledKSM(overrides?: CallOverrides): Promise<BigNumber>;
    getTotalShares(overrides?: CallOverrides): Promise<BigNumber>;
    getUnbonded(_holder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        waiting: BigNumber;
        unbonded: BigNumber;
    }>;
    increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_authManager: PromiseOrValue<string>, _vKSM: PromiseOrValue<string>, _controller: PromiseOrValue<string>, _developers: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _oracleMaster: PromiseOrValue<string>, _withdrawal: PromiseOrValue<string>, _depositCap: PromiseOrValue<BigNumberish>, _maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    ledgerBorrow(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    ledgerStake(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    nominateBatch(_stashAccounts: PromiseOrValue<BytesLike>[], _validators: PromiseOrValue<BytesLike>[][], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    redeem(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    resume(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    resumeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDepositCap(_depositCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDevelopers(_developers: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFee(_feeOperators: PromiseOrValue<BigNumberish>, _feeTreasury: PromiseOrValue<BigNumberish>, _feeDevelopers: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLedgerBeacon(_ledgerBeacon: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLedgerFactory(_ledgerFactory: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxAllowableDifference(_maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRelaySpec(_relaySpec: Types.RelaySpecStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFromLedger(_amount: PromiseOrValue<BigNumberish>, _excess: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferToLedger(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        AUTH_MANAGER(overrides?: CallOverrides): Promise<string>;
        LEDGER_BEACON(overrides?: CallOverrides): Promise<string>;
        MAX_ALLOWABLE_DIFFERENCE(overrides?: CallOverrides): Promise<BigNumber>;
        ORACLE_MASTER(overrides?: CallOverrides): Promise<string>;
        addLedger(_stashAccount: PromiseOrValue<BytesLike>, _controllerAccount: PromiseOrValue<BytesLike>, _index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        bufferedDeposits(overrides?: CallOverrides): Promise<BigNumber>;
        bufferedRedeems(overrides?: CallOverrides): Promise<BigNumber>;
        claimUnbonded(overrides?: CallOverrides): Promise<void>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        'deposit(uint256,address)'(_amount: PromiseOrValue<BigNumberish>, _referral: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(uint256)'(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        depositCap(overrides?: CallOverrides): Promise<BigNumber>;
        disableLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        distributeLosses(_totalLosses: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        distributeRewards(_totalRewards: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emergencyPauseLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        findLedger(_stashAccount: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        flushStakes(overrides?: CallOverrides): Promise<void>;
        fundRaisedBalance(overrides?: CallOverrides): Promise<BigNumber>;
        getLedgerAddresses(overrides?: CallOverrides): Promise<string[]>;
        getPooledKSMByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getSharesByPooledKSM(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStashAccounts(overrides?: CallOverrides): Promise<string[]>;
        getTotalPooledKSM(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalShares(overrides?: CallOverrides): Promise<BigNumber>;
        getUnbonded(_holder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            waiting: BigNumber;
            unbonded: BigNumber;
        }>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        initialize(_authManager: PromiseOrValue<string>, _vKSM: PromiseOrValue<string>, _controller: PromiseOrValue<string>, _developers: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _oracleMaster: PromiseOrValue<string>, _withdrawal: PromiseOrValue<string>, _depositCap: PromiseOrValue<BigNumberish>, _maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        ledgerBorrow(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        ledgerStake(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        nominateBatch(_stashAccounts: PromiseOrValue<BytesLike>[], _validators: PromiseOrValue<BytesLike>[][], overrides?: CallOverrides): Promise<void>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        redeem(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        removeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        resume(overrides?: CallOverrides): Promise<void>;
        resumeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDepositCap(_depositCap: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setDevelopers(_developers: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFee(_feeOperators: PromiseOrValue<BigNumberish>, _feeTreasury: PromiseOrValue<BigNumberish>, _feeDevelopers: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setLedgerBeacon(_ledgerBeacon: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setLedgerFactory(_ledgerFactory: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setMaxAllowableDifference(_maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setRelaySpec(_relaySpec: Types.RelaySpecStruct, overrides?: CallOverrides): Promise<void>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFromLedger(_amount: PromiseOrValue<BigNumberish>, _excess: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        transferToLedger(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        '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;
        'Claimed(address,uint256)'(receiver?: PromiseOrValue<string> | null, amount?: null): ClaimedEventFilter;
        Claimed(receiver?: PromiseOrValue<string> | null, amount?: null): ClaimedEventFilter;
        'Deposited(address,uint256)'(sender?: PromiseOrValue<string> | null, amount?: null): DepositedEventFilter;
        Deposited(sender?: PromiseOrValue<string> | null, amount?: null): DepositedEventFilter;
        'FeeSet(uint16,uint16,uint16,uint16)'(fee?: null, feeOperatorsBP?: null, feeTreasuryBP?: null, feeDevelopersBP?: null): FeeSetEventFilter;
        FeeSet(fee?: null, feeOperatorsBP?: null, feeTreasuryBP?: null, feeDevelopersBP?: null): FeeSetEventFilter;
        'LedgerAdd(address,bytes32,bytes32)'(addr?: null, stashAccount?: null, controllerAccount?: null): LedgerAddEventFilter;
        LedgerAdd(addr?: null, stashAccount?: null, controllerAccount?: null): LedgerAddEventFilter;
        'LedgerDisable(address)'(addr?: null): LedgerDisableEventFilter;
        LedgerDisable(addr?: null): LedgerDisableEventFilter;
        'LedgerPaused(address)'(addr?: null): LedgerPausedEventFilter;
        LedgerPaused(addr?: null): LedgerPausedEventFilter;
        'LedgerRemove(address)'(addr?: null): LedgerRemoveEventFilter;
        LedgerRemove(addr?: null): LedgerRemoveEventFilter;
        'LedgerResumed(address)'(addr?: null): LedgerResumedEventFilter;
        LedgerResumed(addr?: null): LedgerResumedEventFilter;
        'Losses(address,uint256,uint256)'(ledger?: null, losses?: null, balance?: null): LossesEventFilter;
        Losses(ledger?: null, losses?: null, balance?: null): LossesEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'Redeemed(address,uint256)'(receiver?: PromiseOrValue<string> | null, amount?: null): RedeemedEventFilter;
        Redeemed(receiver?: PromiseOrValue<string> | null, amount?: null): RedeemedEventFilter;
        'Referral(address,address,uint256,uint256)'(userAddr?: null, referralAddr?: null, amount?: null, shares?: null): ReferralEventFilter;
        Referral(userAddr?: null, referralAddr?: null, amount?: null, shares?: null): ReferralEventFilter;
        'Rewards(address,uint256,uint256)'(ledger?: null, rewards?: null, balance?: null): RewardsEventFilter;
        Rewards(ledger?: null, rewards?: null, balance?: null): RewardsEventFilter;
        '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;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        AUTH_MANAGER(overrides?: CallOverrides): Promise<BigNumber>;
        LEDGER_BEACON(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_ALLOWABLE_DIFFERENCE(overrides?: CallOverrides): Promise<BigNumber>;
        ORACLE_MASTER(overrides?: CallOverrides): Promise<BigNumber>;
        addLedger(_stashAccount: PromiseOrValue<BytesLike>, _controllerAccount: PromiseOrValue<BytesLike>, _index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        bufferedDeposits(overrides?: CallOverrides): Promise<BigNumber>;
        bufferedRedeems(overrides?: CallOverrides): Promise<BigNumber>;
        claimUnbonded(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'deposit(uint256,address)'(_amount: PromiseOrValue<BigNumberish>, _referral: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'deposit(uint256)'(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositCap(overrides?: CallOverrides): Promise<BigNumber>;
        disableLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        distributeLosses(_totalLosses: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        distributeRewards(_totalRewards: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emergencyPauseLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        findLedger(_stashAccount: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        flushStakes(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        fundRaisedBalance(overrides?: CallOverrides): Promise<BigNumber>;
        getLedgerAddresses(overrides?: CallOverrides): Promise<BigNumber>;
        getPooledKSMByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getSharesByPooledKSM(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStashAccounts(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalPooledKSM(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalShares(overrides?: CallOverrides): Promise<BigNumber>;
        getUnbonded(_holder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_authManager: PromiseOrValue<string>, _vKSM: PromiseOrValue<string>, _controller: PromiseOrValue<string>, _developers: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _oracleMaster: PromiseOrValue<string>, _withdrawal: PromiseOrValue<string>, _depositCap: PromiseOrValue<BigNumberish>, _maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        ledgerBorrow(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        ledgerStake(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        nominateBatch(_stashAccounts: PromiseOrValue<BytesLike>[], _validators: PromiseOrValue<BytesLike>[][], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        redeem(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        resumeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDepositCap(_depositCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDevelopers(_developers: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFee(_feeOperators: PromiseOrValue<BigNumberish>, _feeTreasury: PromiseOrValue<BigNumberish>, _feeDevelopers: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLedgerBeacon(_ledgerBeacon: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLedgerFactory(_ledgerFactory: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxAllowableDifference(_maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRelaySpec(_relaySpec: Types.RelaySpecStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFromLedger(_amount: PromiseOrValue<BigNumberish>, _excess: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferToLedger(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        AUTH_MANAGER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        LEDGER_BEACON(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_ALLOWABLE_DIFFERENCE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ORACLE_MASTER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addLedger(_stashAccount: PromiseOrValue<BytesLike>, _controllerAccount: PromiseOrValue<BytesLike>, _index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bufferedDeposits(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bufferedRedeems(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimUnbonded(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'deposit(uint256,address)'(_amount: PromiseOrValue<BigNumberish>, _referral: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'deposit(uint256)'(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositCap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        disableLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        distributeLosses(_totalLosses: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        distributeRewards(_totalRewards: PromiseOrValue<BigNumberish>, _ledgerBalance: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emergencyPauseLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        findLedger(_stashAccount: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        flushStakes(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        fundRaisedBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLedgerAddresses(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPooledKSMByShares(_sharesAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getSharesByPooledKSM(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStashAccounts(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalPooledKSM(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalShares(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUnbonded(_holder: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(_spender: PromiseOrValue<string>, _addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_authManager: PromiseOrValue<string>, _vKSM: PromiseOrValue<string>, _controller: PromiseOrValue<string>, _developers: PromiseOrValue<string>, _treasury: PromiseOrValue<string>, _oracleMaster: PromiseOrValue<string>, _withdrawal: PromiseOrValue<string>, _depositCap: PromiseOrValue<BigNumberish>, _maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        ledgerBorrow(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ledgerStake(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nominateBatch(_stashAccounts: PromiseOrValue<BytesLike>[], _validators: PromiseOrValue<BytesLike>[][], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        redeem(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        resume(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        resumeLedger(_ledgerAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDepositCap(_depositCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDevelopers(_developers: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFee(_feeOperators: PromiseOrValue<BigNumberish>, _feeTreasury: PromiseOrValue<BigNumberish>, _feeDevelopers: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLedgerBeacon(_ledgerBeacon: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLedgerFactory(_ledgerFactory: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxAllowableDifference(_maxAllowableDifference: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRelaySpec(_relaySpec: Types.RelaySpecStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sharesOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFromLedger(_amount: PromiseOrValue<BigNumberish>, _excess: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferToLedger(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
