import type { Address, EthAddress } from '@ariestools/sdk';
import type { IStakedXyoChain } from '@xyo-network/typechain';
import type { ChainContractViewer, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
import type { EvmViewerParams } from './AbstractEvmViewer.js';
import { AbstractEvmViewer } from './AbstractEvmViewer.js';
/** Public contract for Evm Chain Contract Viewer Params. */
export interface EvmChainContractViewerParams extends EvmViewerParams {
}
/**
 * A class that represents a chain stake as backed by an EVM smart contract
 */
export declare class EvmChainContractViewer extends AbstractEvmViewer<EvmChainContractViewerParams, IStakedXyoChain> implements ChainContractViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["evm-rpc"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "ChainContractViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: "EvmChainViewer"[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "ChainContractViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "ChainContractViewer";
    private _forkedAtBlockNumber?;
    private _forkedAtHash?;
    private _forkedChainContractViewer?;
    private _forkedChainId?;
    private _minWithdrawalBlocks?;
    private _rewardsContract?;
    private _stakingTokenAddress?;
    /** Returns the chain id result exposed by this provider. */
    chainId(): import("@ariestools/sdk").BrandedHex;
    /** Returns the chain id at block number result exposed by this provider. */
    chainIdAtBlockNumber(blockNumber: XL1BlockNumber): Promise<import("@ariestools/sdk").BrandedHex>;
    /** Returns the forked at block number result exposed by this provider. */
    forkedAtBlockNumber(): Promise<XL1BlockNumber | null>;
    /** Returns the forked at hash result exposed by this provider. */
    forkedAtHash(): Promise<import("@ariestools/sdk").BrandedHash>;
    /** Returns the forked chain contract viewer result exposed by this provider. */
    forkedChainContractViewer(): Promise<ChainContractViewer>;
    /** Returns the forked chain id result exposed by this provider. */
    forkedChainId(): Promise<Address>;
    /** Returns the min withdrawal blocks result exposed by this provider. */
    minWithdrawalBlocks(): Promise<number>;
    /** Returns the rewards contract result exposed by this provider. */
    rewardsContract(): Promise<Address>;
    /** Returns the staking token address result exposed by this provider. */
    stakingTokenAddress(): Promise<Address>;
    protected connectContract(address: EthAddress): IStakedXyoChain;
}
//# sourceMappingURL=EvmChainContractViewer.d.ts.map