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 {
    /** Reference time used to derive block-time values. */
    timeAnchor?: ExternalTimeAnchorOptions;
}
/** Provider for viewing step-level staking data including positions, rewards, and stake weights. */
export declare class SimpleStepViewer extends AbstractCreatableProvider<SimpleStepViewerParams> implements StepViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["none"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "StepViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: ("BlockViewer" | "NetworkStakeStepRewardsViewer" | "StakeEventsViewer" | "StakeViewer")[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "StepViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "StepViewer";
    private _blockViewer?;
    private _networkStakeStepRewardsViewer?;
    private _stakeEventsViewer?;
    private _stakeViewer?;
    /** Returns the rewards result exposed by this provider. */
    get rewards(): NetworkStakeStepRewardsViewer;
    /** Returns the time anchor result exposed by this provider. */
    get timeAnchor(): ExternalTimeAnchorOptions | undefined;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get stakeEventsViewer(): StakeEventsViewer;
    protected get stakeViewer(): StakeViewer;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns the position count result exposed by this provider. */
    positionCount(step: StepIdentity): Promise<number>;
    /** Returns the positions result exposed by this provider. */
    positions(step: StepIdentity, _options?: PagedPositionsOptions): Promise<Position[]>;
    /** Returns the randomizer result exposed by this provider. */
    randomizer(_step: StepIdentity): Promisable<bigint>;
    /** Returns the stake result exposed by this provider. */
    stake(_step: StepIdentity): Promisable<bigint>;
    /** Returns the staker count result exposed by this provider. */
    stakerCount(_step: StepIdentity): Promisable<number>;
    /** Returns the stakers result exposed by this provider. */
    stakers(_step: StepIdentity, _options?: PagedStakersOptions): Promisable<XyoAddress[]>;
    /** Returns the weight result exposed by this provider. */
    weight(_step: StepIdentity, _positionId?: PositionId): Promisable<bigint>;
}
//# sourceMappingURL=SimpleStepViewer.d.ts.map