import type { CreatableParams } from '@ariestools/sdk';
import { AbstractCreatable } from '@ariestools/sdk';
import type { AttoXL1, BlockRewardViewer, ChainContractViewer, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
import type { Provider } from 'ethers/providers';
/** Public contract for Evm Block Reward Viewer Params. */
export interface EvmBlockRewardViewerParams extends CreatableParams {
    /** chain Contract Viewer configuration or state exposed by this contract. */
    chainContractViewer: ChainContractViewer;
    /** Backing provider used to read or mutate protocol state. */
    provider: Provider;
}
/** Implements Evm Block Reward Viewer behavior for the SDK provider graph. */
export declare class EvmBlockRewardViewer extends AbstractCreatable<EvmBlockRewardViewerParams> implements BlockRewardViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["evm-rpc"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "BlockRewardViewer";
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "BlockRewardViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "BlockRewardViewer";
    protected _contractAddress: string | undefined;
    protected get chainContractViewer(): ChainContractViewer;
    protected get contractAddress(): string;
    protected get provider(): Provider;
    /** Returns the allowed reward for block result exposed by this provider. */
    allowedRewardForBlock(blockNumber: XL1BlockNumber): Promise<AttoXL1>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
}
//# sourceMappingURL=EvmBlockRewardViewer.d.ts.map