import type { Address, Promisable } from '@ariestools/sdk';
import { type XyoAddress } from '@xyo-network/sdk';
import type { Position, StakeEventsViewer, StakeViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
/** Parameters for SimpleStakeViewer. */
export interface SimpleStakeViewerParams extends CreatableProviderParams {
    chainId?: Address;
    minWithdrawalBlocks?: number;
    positions: Position[];
}
/** SimpleStakeViewer implementation. */
export declare class SimpleStakeViewer extends AbstractCreatableProvider<SimpleStakeViewerParams> implements StakeViewer {
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory"];
    static readonly defaultMoniker: "StakeViewer";
    static readonly dependencies: "StakeEventsViewer"[];
    static readonly monikers: "StakeViewer"[];
    static readonly surface: "node";
    moniker: "StakeViewer";
    private _chainStakeEventsViewer;
    get stakeEvents(): StakeEventsViewer;
    protected get positions(): Position[];
    active(): Promise<bigint>;
    activeByAddressStaked(staked: XyoAddress): Promise<bigint>;
    activeByStaker(staker: XyoAddress): Promise<bigint>;
    activeStakes(): Promisable<Position[]>;
    createHandler(): Promise<void>;
    minWithdrawalBlocks(): number;
    pending(): Promise<bigint>;
    pendingByStaker(staker: XyoAddress): Promise<bigint>;
    removedStakes(): Promisable<Position[]>;
    rewardsContract(): Address;
    stakeById(id: number): Position;
    stakeByStaker(staker: XyoAddress, slot: number): Position;
    stakesByStaked(staked: XyoAddress, range?: [number, number | undefined]): Position[];
    stakesByStaker(staker: XyoAddress, range?: [number, number | undefined]): Position[];
    stakingTokenAddress(): Address;
    withdrawn(): Promise<bigint>;
    withdrawnByStaker(staker: XyoAddress): Promise<bigint>;
    withdrawnStakes(): Promisable<Position[]>;
}
//# sourceMappingURL=SimpleStakeViewer.d.ts.map