import type { Promisable } from '@ariestools/sdk';
import type { AttoXL1, BlockViewer, FinalizationViewer, NetworkStakeStepRewardsByPositionViewer, NetworkStakeStepRewardsByPositionViewerOptions, StakeViewer, XL1RangeMultipliers } 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 SimpleStepRewardsByPositionViewer. */
export interface SimpleStepRewardsByPositionViewerParams extends CreatableProviderParams {
    rewardMultipliers?: XL1RangeMultipliers;
    timeAnchor?: ExternalTimeAnchorOptions;
}
/** Viewer for network stake step rewards broken down by staking position. */
export declare class SimpleStepRewardsByPositionViewer extends AbstractCreatableProvider<SimpleStepRewardsByPositionViewerParams> implements NetworkStakeStepRewardsByPositionViewer {
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory", "rpc"];
    static readonly defaultMoniker: "NetworkStakeStepRewardsByPositionViewer";
    static readonly dependencies: ("BlockViewer" | "FinalizationViewer" | "StakeViewer")[];
    static readonly monikers: "NetworkStakeStepRewardsByPositionViewer"[];
    static readonly surface: "node";
    moniker: "NetworkStakeStepRewardsByPositionViewer";
    private _blockViewer;
    private _finalizationViewer;
    private _stakeViewer;
    get rewardMultipliers(): XL1RangeMultipliers;
    get timeAnchor(): ExternalTimeAnchorOptions | undefined;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get finalizationViewer(): FinalizationViewer;
    protected get stakeViewer(): StakeViewer;
    bonus({ range, positions }?: NetworkStakeStepRewardsByPositionViewerOptions): Promise<Record<number, AttoXL1>>;
    claimed(_options?: NetworkStakeStepRewardsByPositionViewerOptions): Promisable<Record<number, AttoXL1>>;
    createHandler(): Promise<void>;
    earned({ range, positions }?: NetworkStakeStepRewardsByPositionViewerOptions): Promise<Record<number, AttoXL1>>;
    total({ range, positions }?: NetworkStakeStepRewardsByPositionViewerOptions): Promise<Record<number, AttoXL1>>;
    unclaimed(_options?: NetworkStakeStepRewardsByPositionViewerOptions): Promisable<Record<number, AttoXL1>>;
    protected calculateRewards({ range, positions }?: NetworkStakeStepRewardsByPositionViewerOptions, rewardMultipliers?: XL1RangeMultipliers): Promise<Record<number, AttoXL1>>;
}
//# sourceMappingURL=SimpleStepRewardsByPositionViewer.d.ts.map