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 {
    /** Identifier for the chain associated with this value. */
    chainId?: Address;
    /** min Withdrawal Blocks configuration or state exposed by this contract. */
    minWithdrawalBlocks?: number;
    /** positions configuration or state exposed by this contract. */
    positions: Position[];
}
/** SimpleStakeViewer implementation. */
export declare class SimpleStakeViewer extends AbstractCreatableProvider<SimpleStakeViewerParams> implements StakeViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["none"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "StakeViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: "StakeEventsViewer"[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "StakeViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "StakeViewer";
    private _chainStakeEventsViewer;
    /** Returns the stake events result exposed by this provider. */
    get stakeEvents(): StakeEventsViewer;
    protected get positions(): Position[];
    /** Returns the active result exposed by this provider. */
    active(): Promise<bigint>;
    /** Returns the active by address staked result exposed by this provider. */
    activeByAddressStaked(staked: XyoAddress): Promise<bigint>;
    /** Returns the active by staker result exposed by this provider. */
    activeByStaker(staker: XyoAddress): Promise<bigint>;
    /** Returns the active stakes result exposed by this provider. */
    activeStakes(): Promisable<Position[]>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns the min withdrawal blocks result exposed by this provider. */
    minWithdrawalBlocks(): number;
    /** Returns the pending result exposed by this provider. */
    pending(): Promise<bigint>;
    /** Returns the pending by staker result exposed by this provider. */
    pendingByStaker(staker: XyoAddress): Promise<bigint>;
    /** Returns the removed stakes result exposed by this provider. */
    removedStakes(): Promisable<Position[]>;
    /** Returns the rewards contract result exposed by this provider. */
    rewardsContract(): Address;
    /** Returns the stake by id result exposed by this provider. */
    stakeById(id: number): Position;
    /** Returns the stake by staker result exposed by this provider. */
    stakeByStaker(staker: XyoAddress, slot: number): Position;
    /** Returns the stakes by staked result exposed by this provider. */
    stakesByStaked(staked: XyoAddress, range?: [number, number | undefined]): Position[];
    /** Returns the stakes by staker result exposed by this provider. */
    stakesByStaker(staker: XyoAddress, range?: [number, number | undefined]): Position[];
    /** Returns the staking token address result exposed by this provider. */
    stakingTokenAddress(): Address;
    /** Returns the withdrawn result exposed by this provider. */
    withdrawn(): Promise<bigint>;
    /** Returns the withdrawn by staker result exposed by this provider. */
    withdrawnByStaker(staker: XyoAddress): Promise<bigint>;
    /** Returns the withdrawn stakes result exposed by this provider. */
    withdrawnStakes(): Promisable<Position[]>;
}
//# sourceMappingURL=SimpleStakeViewer.d.ts.map