import type { Address, EthAddress, Promisable } from '@ariestools/sdk';
import { type IAddressStaking } from '@xyo-network/typechain';
import { type Position, type StakeEventsViewer, type StakeViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import type { EvmViewerParams } from './AbstractEvmViewer.js';
import { AbstractEvmViewer } from './AbstractEvmViewer.js';
export interface EvmStakeViewerParams extends EvmViewerParams {
}
export declare class EvmStakeViewer extends AbstractEvmViewer<EvmStakeViewerParams, IAddressStaking> implements StakeViewer {
    static readonly connectionTypes: readonly ["evm-rpc"];
    static readonly defaultMoniker: "StakeViewer";
    static readonly dependencies: ("StakeEventsViewer" | "EvmChainViewer")[];
    static readonly monikers: "StakeViewer"[];
    static readonly surface: "node";
    readonly moniker: "StakeViewer";
    private _callMutex;
    private _deploymentBlock;
    private _stakeCache;
    private _stakeEventsViewer;
    get stakeEvents(): StakeEventsViewer;
    active(): Promise<bigint>;
    activeByAddressStaked(address: Address): Promise<bigint>;
    activeByStaker(address: Address): Promise<bigint>;
    activeStakes(): Promisable<Position[]>;
    createHandler(): Promise<void>;
    minWithdrawalBlocks(): number;
    pending(): Promise<bigint>;
    pendingByStaker(staker: Address): Promise<bigint>;
    removedStakes(): Promisable<Position[]>;
    rewardsContract(): Address;
    stakeById(id: number): Promise<Position>;
    stakeByStaker(staker: Address, slot: number): Promise<Position>;
    stakesByStaked(staked: Address, range?: [number, number | undefined]): Promise<Position[]>;
    stakesByStaker(staker: Address, range?: [number, number | undefined]): Promise<Position[]>;
    stakingTokenAddress(): Address;
    withdrawn(): Promise<bigint>;
    withdrawnByStaker(staker: Address): Promise<bigint>;
    withdrawnStakes(): Promisable<Position[]>;
    protected connectContract(address: EthAddress): IAddressStaking;
    protected startHandler(): Promise<void>;
    private applyHistoricalStakeEvent;
}
//# sourceMappingURL=EvmStakeViewer.d.ts.map