import { type Promisable } from '@ariestools/sdk';
import type { XyoAddress } from '@xyo-network/sdk';
import type { BlockViewer, NetworkStakeStepRewardsViewer, PagedPositionsOptions, PagedStakersOptions, Position, PositionId, StakeEventsViewer, StakeViewer, StepIdentity, StepViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams, ExternalTimeAnchorOptions } from '../protocol-sdk/index.js';
import { AbstractCreatableProvider } from '../protocol-sdk/index.js';
/** Configuration params for SimpleStepViewer. */
export interface SimpleStepViewerParams extends CreatableProviderParams {
    timeAnchor?: ExternalTimeAnchorOptions;
}
/** Provider for viewing step-level staking data including positions, rewards, and stake weights. */
export declare class SimpleStepViewer extends AbstractCreatableProvider<SimpleStepViewerParams> implements StepViewer {
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory", "rpc"];
    static readonly defaultMoniker: "StepViewer";
    static readonly dependencies: ("BlockViewer" | "NetworkStakeStepRewardsViewer" | "StakeEventsViewer" | "StakeViewer")[];
    static readonly monikers: "StepViewer"[];
    static readonly surface: "node";
    moniker: "StepViewer";
    private _blockViewer?;
    private _networkStakeStepRewardsViewer?;
    private _stakeEventsViewer?;
    private _stakeViewer?;
    get rewards(): NetworkStakeStepRewardsViewer;
    get timeAnchor(): ExternalTimeAnchorOptions | undefined;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get stakeEventsViewer(): StakeEventsViewer;
    protected get stakeViewer(): StakeViewer;
    createHandler(): Promise<void>;
    positionCount(step: StepIdentity): Promise<number>;
    positions(step: StepIdentity, _options?: PagedPositionsOptions): Promise<Position[]>;
    randomizer(_step: StepIdentity): Promisable<bigint>;
    stake(_step: StepIdentity): Promisable<bigint>;
    stakerCount(_step: StepIdentity): Promisable<number>;
    stakers(_step: StepIdentity, _options?: PagedStakersOptions): Promisable<XyoAddress[]>;
    weight(_step: StepIdentity, _positionId?: PositionId): Promisable<bigint>;
}
//# sourceMappingURL=SimpleStepViewer.d.ts.map