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 declare namespace StRSRP1Votes {
    type CheckpointStruct = {
        fromBlock: PromiseOrValue<BigNumberish>;
        val: PromiseOrValue<BigNumberish>;
    };
    type CheckpointStructOutput = [number, BigNumber] & {
        fromBlock: number;
        val: BigNumber;
    };
}
export interface StakedRsrInterface extends utils.Interface {
    functions: {
        'DOMAIN_SEPARATOR()': FunctionFragment;
        'MAX_REWARD_RATIO()': FunctionFragment;
        'MAX_UNSTAKING_DELAY()': FunctionFragment;
        'MIN_UNSTAKING_DELAY()': FunctionFragment;
        'PERIOD()': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'checkpoints(address,uint48)': FunctionFragment;
        'currentEra()': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'delegate(address)': FunctionFragment;
        'delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'delegates(address)': FunctionFragment;
        'delegationNonces(address)': FunctionFragment;
        'draftQueueLen(uint256,address)': FunctionFragment;
        'draftQueues(uint256,address,uint256)': FunctionFragment;
        'draftRate()': FunctionFragment;
        'endIdForWithdraw(address)': FunctionFragment;
        'exchangeRate()': FunctionFragment;
        'firstRemainingDraft(uint256,address)': FunctionFragment;
        'getDraftRSR()': FunctionFragment;
        'getPastEra(uint256)': FunctionFragment;
        'getPastTotalSupply(uint256)': FunctionFragment;
        'getPastVotes(address,uint256)': FunctionFragment;
        'getStakeRSR()': FunctionFragment;
        'getTotalDrafts()': FunctionFragment;
        'getVotes(address)': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'init(address,string,string,uint48,uint192)': FunctionFragment;
        'main()': FunctionFragment;
        'name()': FunctionFragment;
        'nonces(address)': FunctionFragment;
        'numCheckpoints(address)': FunctionFragment;
        'payoutLastPaid()': FunctionFragment;
        'payoutRewards()': FunctionFragment;
        'permit(address,address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'proxiableUUID()': FunctionFragment;
        'rewardRatio()': FunctionFragment;
        'seizeRSR(uint256)': FunctionFragment;
        'setRewardRatio(uint192)': FunctionFragment;
        'setUnstakingDelay(uint48)': FunctionFragment;
        'stake(uint256)': FunctionFragment;
        'stakeRate()': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'unstake(uint256)': FunctionFragment;
        'unstakingDelay()': FunctionFragment;
        'upgradeTo(address)': FunctionFragment;
        'upgradeToAndCall(address,bytes)': FunctionFragment;
        'version()': FunctionFragment;
        'withdraw(address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DOMAIN_SEPARATOR' | 'MAX_REWARD_RATIO' | 'MAX_UNSTAKING_DELAY' | 'MIN_UNSTAKING_DELAY' | 'PERIOD' | 'allowance' | 'approve' | 'balanceOf' | 'checkpoints' | 'currentEra' | 'decimals' | 'decreaseAllowance' | 'delegate' | 'delegateBySig' | 'delegates' | 'delegationNonces' | 'draftQueueLen' | 'draftQueues' | 'draftRate' | 'endIdForWithdraw' | 'exchangeRate' | 'firstRemainingDraft' | 'getDraftRSR' | 'getPastEra' | 'getPastTotalSupply' | 'getPastVotes' | 'getStakeRSR' | 'getTotalDrafts' | 'getVotes' | 'increaseAllowance' | 'init' | 'main' | 'name' | 'nonces' | 'numCheckpoints' | 'payoutLastPaid' | 'payoutRewards' | 'permit' | 'proxiableUUID' | 'rewardRatio' | 'seizeRSR' | 'setRewardRatio' | 'setUnstakingDelay' | 'stake' | 'stakeRate' | 'symbol' | 'totalSupply' | 'transfer' | 'transferFrom' | 'unstake' | 'unstakingDelay' | 'upgradeTo' | 'upgradeToAndCall' | 'version' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DOMAIN_SEPARATOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_REWARD_RATIO', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_UNSTAKING_DELAY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MIN_UNSTAKING_DELAY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PERIOD', values?: undefined): 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: 'checkpoints', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'currentEra', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'delegate', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'delegateBySig', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'delegates', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'delegationNonces', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'draftQueueLen', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'draftQueues', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'draftRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'endIdForWithdraw', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'exchangeRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'firstRemainingDraft', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getDraftRSR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPastEra', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getPastTotalSupply', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getPastVotes', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getStakeRSR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalDrafts', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getVotes', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'init', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'main', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nonces', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'numCheckpoints', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'payoutLastPaid', values?: undefined): string;
    encodeFunctionData(functionFragment: 'payoutRewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'permit', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'proxiableUUID', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'seizeRSR', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setRewardRatio', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setUnstakingDelay', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeRate', values?: undefined): 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: 'unstake', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unstakingDelay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'upgradeTo', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'upgradeToAndCall', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'version', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'DOMAIN_SEPARATOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_REWARD_RATIO', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_UNSTAKING_DELAY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MIN_UNSTAKING_DELAY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PERIOD', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkpoints', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentEra', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegateBySig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegationNonces', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'draftQueueLen', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'draftQueues', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'draftRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'endIdForWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchangeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'firstRemainingDraft', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDraftRSR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPastEra', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPastTotalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPastVotes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStakeRSR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalDrafts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'main', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'numCheckpoints', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'payoutLastPaid', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'payoutRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'permit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proxiableUUID', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'seizeRSR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewardRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setUnstakingDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeRate', 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: 'unstake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakingDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgradeTo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgradeToAndCall', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'AdminChanged(address,address)': EventFragment;
        'AllBalancesReset(uint256)': EventFragment;
        'AllUnstakingReset(uint256)': EventFragment;
        'Approval(address,address,uint256)': EventFragment;
        'BeaconUpgraded(address)': EventFragment;
        'DelegateChanged(address,address,address)': EventFragment;
        'DelegateVotesChanged(address,uint256,uint256)': EventFragment;
        'ExchangeRateSet(uint192,uint192)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'RewardRatioSet(uint192,uint192)': EventFragment;
        'RewardsPaid(uint256)': EventFragment;
        'Staked(uint256,address,uint256,uint256)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'UnstakingCompleted(uint256,uint256,uint256,address,uint256)': EventFragment;
        'UnstakingDelaySet(uint48,uint48)': EventFragment;
        'UnstakingStarted(uint256,uint256,address,uint256,uint256,uint256)': EventFragment;
        'Upgraded(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AllBalancesReset'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AllUnstakingReset'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BeaconUpgraded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DelegateChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DelegateVotesChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ExchangeRateSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardRatioSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardsPaid'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Staked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UnstakingCompleted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UnstakingDelaySet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UnstakingStarted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Upgraded'): EventFragment;
}
export interface AdminChangedEventObject {
    previousAdmin: string;
    newAdmin: string;
}
export declare type AdminChangedEvent = TypedEvent<[string, string], AdminChangedEventObject>;
export declare type AdminChangedEventFilter = TypedEventFilter<AdminChangedEvent>;
export interface AllBalancesResetEventObject {
    newEra: BigNumber;
}
export declare type AllBalancesResetEvent = TypedEvent<[BigNumber], AllBalancesResetEventObject>;
export declare type AllBalancesResetEventFilter = TypedEventFilter<AllBalancesResetEvent>;
export interface AllUnstakingResetEventObject {
    newEra: BigNumber;
}
export declare type AllUnstakingResetEvent = TypedEvent<[BigNumber], AllUnstakingResetEventObject>;
export declare type AllUnstakingResetEventFilter = TypedEventFilter<AllUnstakingResetEvent>;
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 BeaconUpgradedEventObject {
    beacon: string;
}
export declare type BeaconUpgradedEvent = TypedEvent<[string], BeaconUpgradedEventObject>;
export declare type BeaconUpgradedEventFilter = TypedEventFilter<BeaconUpgradedEvent>;
export interface DelegateChangedEventObject {
    delegator: string;
    fromDelegate: string;
    toDelegate: string;
}
export declare type DelegateChangedEvent = TypedEvent<[string, string, string], DelegateChangedEventObject>;
export declare type DelegateChangedEventFilter = TypedEventFilter<DelegateChangedEvent>;
export interface DelegateVotesChangedEventObject {
    delegate: string;
    previousBalance: BigNumber;
    newBalance: BigNumber;
}
export declare type DelegateVotesChangedEvent = TypedEvent<[string, BigNumber, BigNumber], DelegateVotesChangedEventObject>;
export declare type DelegateVotesChangedEventFilter = TypedEventFilter<DelegateVotesChangedEvent>;
export interface ExchangeRateSetEventObject {
    oldVal: BigNumber;
    newVal: BigNumber;
}
export declare type ExchangeRateSetEvent = TypedEvent<[BigNumber, BigNumber], ExchangeRateSetEventObject>;
export declare type ExchangeRateSetEventFilter = TypedEventFilter<ExchangeRateSetEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface RewardRatioSetEventObject {
    oldVal: BigNumber;
    newVal: BigNumber;
}
export declare type RewardRatioSetEvent = TypedEvent<[BigNumber, BigNumber], RewardRatioSetEventObject>;
export declare type RewardRatioSetEventFilter = TypedEventFilter<RewardRatioSetEvent>;
export interface RewardsPaidEventObject {
    rsrAmt: BigNumber;
}
export declare type RewardsPaidEvent = TypedEvent<[BigNumber], RewardsPaidEventObject>;
export declare type RewardsPaidEventFilter = TypedEventFilter<RewardsPaidEvent>;
export interface StakedEventObject {
    era: BigNumber;
    staker: string;
    rsrAmount: BigNumber;
    stRSRAmount: BigNumber;
}
export declare type StakedEvent = TypedEvent<[BigNumber, string, BigNumber, BigNumber], StakedEventObject>;
export declare type StakedEventFilter = TypedEventFilter<StakedEvent>;
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 UnstakingCompletedEventObject {
    firstId: BigNumber;
    endId: BigNumber;
    draftEra: BigNumber;
    staker: string;
    rsrAmount: BigNumber;
}
export declare type UnstakingCompletedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    string,
    BigNumber
], UnstakingCompletedEventObject>;
export declare type UnstakingCompletedEventFilter = TypedEventFilter<UnstakingCompletedEvent>;
export interface UnstakingDelaySetEventObject {
    oldVal: number;
    newVal: number;
}
export declare type UnstakingDelaySetEvent = TypedEvent<[number, number], UnstakingDelaySetEventObject>;
export declare type UnstakingDelaySetEventFilter = TypedEventFilter<UnstakingDelaySetEvent>;
export interface UnstakingStartedEventObject {
    draftId: BigNumber;
    draftEra: BigNumber;
    staker: string;
    rsrAmount: BigNumber;
    stRSRAmount: BigNumber;
    availableAt: BigNumber;
}
export declare type UnstakingStartedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], UnstakingStartedEventObject>;
export declare type UnstakingStartedEventFilter = TypedEventFilter<UnstakingStartedEvent>;
export interface UpgradedEventObject {
    implementation: string;
}
export declare type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>;
export declare type UpgradedEventFilter = TypedEventFilter<UpgradedEvent>;
export interface StakedRsr extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: StakedRsrInterface;
    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: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
        MAX_REWARD_RATIO(overrides?: CallOverrides): Promise<[BigNumber]>;
        MAX_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<[number]>;
        MIN_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<[number]>;
        PERIOD(overrides?: CallOverrides): Promise<[number]>;
        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]>;
        checkpoints(account: PromiseOrValue<string>, pos: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[StRSRP1Votes.CheckpointStructOutput]>;
        currentEra(overrides?: CallOverrides): Promise<[BigNumber]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegates(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        delegationNonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        draftQueueLen(era_: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        draftQueues(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            drafts: BigNumber;
            availableAt: BigNumber;
        }>;
        draftRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        endIdForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        exchangeRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        firstRemainingDraft(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getDraftRSR(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPastEra(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getStakeRSR(overrides?: CallOverrides): Promise<[BigNumber]>;
        getTotalDrafts(overrides?: CallOverrides): Promise<[BigNumber]>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        init(main_: PromiseOrValue<string>, name_: PromiseOrValue<string>, symbol_: PromiseOrValue<string>, unstakingDelay_: PromiseOrValue<BigNumberish>, rewardRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        main(overrides?: CallOverrides): Promise<[string]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        numCheckpoints(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number]>;
        payoutLastPaid(overrides?: CallOverrides): Promise<[number]>;
        payoutRewards(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, value: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        proxiableUUID(overrides?: CallOverrides): Promise<[string]>;
        rewardRatio(overrides?: CallOverrides): Promise<[BigNumber]>;
        seizeRSR(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewardRatio(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setUnstakingDelay(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stake(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstake(stakeAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstakingDelay(overrides?: CallOverrides): Promise<[number]>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        version(overrides?: CallOverrides): Promise<[string]>;
        withdraw(account: PromiseOrValue<string>, endId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
    MAX_REWARD_RATIO(overrides?: CallOverrides): Promise<BigNumber>;
    MAX_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<number>;
    MIN_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<number>;
    PERIOD(overrides?: CallOverrides): Promise<number>;
    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>;
    checkpoints(account: PromiseOrValue<string>, pos: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<StRSRP1Votes.CheckpointStructOutput>;
    currentEra(overrides?: CallOverrides): Promise<BigNumber>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegates(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    delegationNonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    draftQueueLen(era_: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    draftQueues(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        drafts: BigNumber;
        availableAt: BigNumber;
    }>;
    draftRate(overrides?: CallOverrides): Promise<BigNumber>;
    endIdForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    exchangeRate(overrides?: CallOverrides): Promise<BigNumber>;
    firstRemainingDraft(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getDraftRSR(overrides?: CallOverrides): Promise<BigNumber>;
    getPastEra(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getStakeRSR(overrides?: CallOverrides): Promise<BigNumber>;
    getTotalDrafts(overrides?: CallOverrides): Promise<BigNumber>;
    getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    init(main_: PromiseOrValue<string>, name_: PromiseOrValue<string>, symbol_: PromiseOrValue<string>, unstakingDelay_: PromiseOrValue<BigNumberish>, rewardRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    main(overrides?: CallOverrides): Promise<string>;
    name(overrides?: CallOverrides): Promise<string>;
    nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    numCheckpoints(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
    payoutLastPaid(overrides?: CallOverrides): Promise<number>;
    payoutRewards(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, value: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    proxiableUUID(overrides?: CallOverrides): Promise<string>;
    rewardRatio(overrides?: CallOverrides): Promise<BigNumber>;
    seizeRSR(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewardRatio(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setUnstakingDelay(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stake(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeRate(overrides?: CallOverrides): Promise<BigNumber>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstake(stakeAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstakingDelay(overrides?: CallOverrides): Promise<number>;
    upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    version(overrides?: CallOverrides): Promise<string>;
    withdraw(account: PromiseOrValue<string>, endId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
        MAX_REWARD_RATIO(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<number>;
        MIN_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<number>;
        PERIOD(overrides?: CallOverrides): Promise<number>;
        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>;
        checkpoints(account: PromiseOrValue<string>, pos: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<StRSRP1Votes.CheckpointStructOutput>;
        currentEra(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        delegates(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        delegationNonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        draftQueueLen(era_: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        draftQueues(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            drafts: BigNumber;
            availableAt: BigNumber;
        }>;
        draftRate(overrides?: CallOverrides): Promise<BigNumber>;
        endIdForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        exchangeRate(overrides?: CallOverrides): Promise<BigNumber>;
        firstRemainingDraft(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDraftRSR(overrides?: CallOverrides): Promise<BigNumber>;
        getPastEra(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStakeRSR(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalDrafts(overrides?: CallOverrides): Promise<BigNumber>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        init(main_: PromiseOrValue<string>, name_: PromiseOrValue<string>, symbol_: PromiseOrValue<string>, unstakingDelay_: PromiseOrValue<BigNumberish>, rewardRatio_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        main(overrides?: CallOverrides): Promise<string>;
        name(overrides?: CallOverrides): Promise<string>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        numCheckpoints(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
        payoutLastPaid(overrides?: CallOverrides): Promise<number>;
        payoutRewards(overrides?: CallOverrides): Promise<void>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, value: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        proxiableUUID(overrides?: CallOverrides): Promise<string>;
        rewardRatio(overrides?: CallOverrides): Promise<BigNumber>;
        seizeRSR(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setRewardRatio(val: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setUnstakingDelay(val: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stake(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeRate(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        unstake(stakeAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unstakingDelay(overrides?: CallOverrides): Promise<number>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        version(overrides?: CallOverrides): Promise<string>;
        withdraw(account: PromiseOrValue<string>, endId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'AdminChanged(address,address)'(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        AdminChanged(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        'AllBalancesReset(uint256)'(newEra?: PromiseOrValue<BigNumberish> | null): AllBalancesResetEventFilter;
        AllBalancesReset(newEra?: PromiseOrValue<BigNumberish> | null): AllBalancesResetEventFilter;
        'AllUnstakingReset(uint256)'(newEra?: PromiseOrValue<BigNumberish> | null): AllUnstakingResetEventFilter;
        AllUnstakingReset(newEra?: PromiseOrValue<BigNumberish> | null): AllUnstakingResetEventFilter;
        '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;
        'BeaconUpgraded(address)'(beacon?: PromiseOrValue<string> | null): BeaconUpgradedEventFilter;
        BeaconUpgraded(beacon?: PromiseOrValue<string> | null): BeaconUpgradedEventFilter;
        'DelegateChanged(address,address,address)'(delegator?: PromiseOrValue<string> | null, fromDelegate?: PromiseOrValue<string> | null, toDelegate?: PromiseOrValue<string> | null): DelegateChangedEventFilter;
        DelegateChanged(delegator?: PromiseOrValue<string> | null, fromDelegate?: PromiseOrValue<string> | null, toDelegate?: PromiseOrValue<string> | null): DelegateChangedEventFilter;
        'DelegateVotesChanged(address,uint256,uint256)'(delegate?: PromiseOrValue<string> | null, previousBalance?: null, newBalance?: null): DelegateVotesChangedEventFilter;
        DelegateVotesChanged(delegate?: PromiseOrValue<string> | null, previousBalance?: null, newBalance?: null): DelegateVotesChangedEventFilter;
        'ExchangeRateSet(uint192,uint192)'(oldVal?: PromiseOrValue<BigNumberish> | null, newVal?: PromiseOrValue<BigNumberish> | null): ExchangeRateSetEventFilter;
        ExchangeRateSet(oldVal?: PromiseOrValue<BigNumberish> | null, newVal?: PromiseOrValue<BigNumberish> | null): ExchangeRateSetEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'RewardRatioSet(uint192,uint192)'(oldVal?: PromiseOrValue<BigNumberish> | null, newVal?: PromiseOrValue<BigNumberish> | null): RewardRatioSetEventFilter;
        RewardRatioSet(oldVal?: PromiseOrValue<BigNumberish> | null, newVal?: PromiseOrValue<BigNumberish> | null): RewardRatioSetEventFilter;
        'RewardsPaid(uint256)'(rsrAmt?: PromiseOrValue<BigNumberish> | null): RewardsPaidEventFilter;
        RewardsPaid(rsrAmt?: PromiseOrValue<BigNumberish> | null): RewardsPaidEventFilter;
        'Staked(uint256,address,uint256,uint256)'(era?: PromiseOrValue<BigNumberish> | null, staker?: PromiseOrValue<string> | null, rsrAmount?: null, stRSRAmount?: PromiseOrValue<BigNumberish> | null): StakedEventFilter;
        Staked(era?: PromiseOrValue<BigNumberish> | null, staker?: PromiseOrValue<string> | null, rsrAmount?: null, stRSRAmount?: PromiseOrValue<BigNumberish> | null): StakedEventFilter;
        '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;
        'UnstakingCompleted(uint256,uint256,uint256,address,uint256)'(firstId?: PromiseOrValue<BigNumberish> | null, endId?: PromiseOrValue<BigNumberish> | null, draftEra?: null, staker?: PromiseOrValue<string> | null, rsrAmount?: null): UnstakingCompletedEventFilter;
        UnstakingCompleted(firstId?: PromiseOrValue<BigNumberish> | null, endId?: PromiseOrValue<BigNumberish> | null, draftEra?: null, staker?: PromiseOrValue<string> | null, rsrAmount?: null): UnstakingCompletedEventFilter;
        'UnstakingDelaySet(uint48,uint48)'(oldVal?: PromiseOrValue<BigNumberish> | null, newVal?: PromiseOrValue<BigNumberish> | null): UnstakingDelaySetEventFilter;
        UnstakingDelaySet(oldVal?: PromiseOrValue<BigNumberish> | null, newVal?: PromiseOrValue<BigNumberish> | null): UnstakingDelaySetEventFilter;
        'UnstakingStarted(uint256,uint256,address,uint256,uint256,uint256)'(draftId?: PromiseOrValue<BigNumberish> | null, draftEra?: PromiseOrValue<BigNumberish> | null, staker?: PromiseOrValue<string> | null, rsrAmount?: null, stRSRAmount?: null, availableAt?: null): UnstakingStartedEventFilter;
        UnstakingStarted(draftId?: PromiseOrValue<BigNumberish> | null, draftEra?: PromiseOrValue<BigNumberish> | null, staker?: PromiseOrValue<string> | null, rsrAmount?: null, stRSRAmount?: null, availableAt?: null): UnstakingStartedEventFilter;
        'Upgraded(address)'(implementation?: PromiseOrValue<string> | null): UpgradedEventFilter;
        Upgraded(implementation?: PromiseOrValue<string> | null): UpgradedEventFilter;
    };
    estimateGas: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_REWARD_RATIO(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
        PERIOD(overrides?: CallOverrides): 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>;
        checkpoints(account: PromiseOrValue<string>, pos: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        currentEra(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegates(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        delegationNonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        draftQueueLen(era_: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        draftQueues(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        draftRate(overrides?: CallOverrides): Promise<BigNumber>;
        endIdForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        exchangeRate(overrides?: CallOverrides): Promise<BigNumber>;
        firstRemainingDraft(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDraftRSR(overrides?: CallOverrides): Promise<BigNumber>;
        getPastEra(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStakeRSR(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalDrafts(overrides?: CallOverrides): Promise<BigNumber>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        init(main_: PromiseOrValue<string>, name_: PromiseOrValue<string>, symbol_: PromiseOrValue<string>, unstakingDelay_: PromiseOrValue<BigNumberish>, rewardRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        main(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        numCheckpoints(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        payoutLastPaid(overrides?: CallOverrides): Promise<BigNumber>;
        payoutRewards(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, value: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        proxiableUUID(overrides?: CallOverrides): Promise<BigNumber>;
        rewardRatio(overrides?: CallOverrides): Promise<BigNumber>;
        seizeRSR(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewardRatio(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setUnstakingDelay(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stake(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeRate(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstake(stakeAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstakingDelay(overrides?: CallOverrides): Promise<BigNumber>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(account: PromiseOrValue<string>, endId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_REWARD_RATIO(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MIN_UNSTAKING_DELAY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PERIOD(overrides?: CallOverrides): 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>;
        checkpoints(account: PromiseOrValue<string>, pos: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentEra(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegate(delegatee: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegateBySig(delegatee: PromiseOrValue<string>, nonce: PromiseOrValue<BigNumberish>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegates(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        delegationNonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        draftQueueLen(era_: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        draftQueues(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        draftRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        endIdForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        exchangeRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        firstRemainingDraft(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDraftRSR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPastEra(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStakeRSR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalDrafts(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        init(main_: PromiseOrValue<string>, name_: PromiseOrValue<string>, symbol_: PromiseOrValue<string>, unstakingDelay_: PromiseOrValue<BigNumberish>, rewardRatio_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        main(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        numCheckpoints(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        payoutLastPaid(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        payoutRewards(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, value: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        proxiableUUID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        seizeRSR(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewardRatio(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setUnstakingDelay(val: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stake(rsrAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstake(stakeAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstakingDelay(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(account: PromiseOrValue<string>, endId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
