import { type Hash } from '@ariestools/sdk';
import type { XyoAddress } from '@xyo-network/sdk';
import type { ChainContractViewer, ChainId, FinalizationViewer, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
/** Parameters for SimpleChainContractViewer. */
export interface SimpleChainContractViewerParams extends CreatableProviderParams {
    /** forked At Block Number configuration or state exposed by this contract. */
    forkedAtBlockNumber?: XL1BlockNumber;
    /** forked At Hash configuration or state exposed by this contract. */
    forkedAtHash?: Hash;
    /** forked Chain Contract Viewer configuration or state exposed by this contract. */
    forkedChainContractViewer?: ChainContractViewer;
    /** Identifier for the forked chain associated with this value. */
    forkedChainId?: ChainId;
    /** Defaults to 10 — the memory-backed (no real contract) value. */
    minWithdrawalBlocks?: number;
    /** Defaults to the zero address — the memory-backed (no real contract) value. */
    rewardsContract?: XyoAddress;
    /** Defaults to the zero address — the memory-backed (no real contract) value. */
    stakingTokenAddress?: XyoAddress;
}
/**
 * A class that represents a chain stake as backed by an EVM smart contract
 */
export declare class SimpleChainContractViewer extends AbstractCreatableProvider<SimpleChainContractViewerParams> implements ChainContractViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["none"];
    /** 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: "FinalizationViewer"[];
    /** 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";
    protected _finalizationViewer: FinalizationViewer;
    protected get finalizationViewer(): FinalizationViewer;
    /** Returns the chain id result exposed by this provider. */
    chainId(): import("@ariestools/sdk").Promisable<import("@ariestools/sdk").BrandedHex>;
    /** Returns the chain id at block number result exposed by this provider. */
    chainIdAtBlockNumber(blockNumber: XL1BlockNumber): Promise<import("@ariestools/sdk").BrandedHex>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns the forked at block number result exposed by this provider. */
    forkedAtBlockNumber(): XL1BlockNumber | null;
    /** Returns the forked at hash result exposed by this provider. */
    forkedAtHash(): import("@ariestools/sdk").BrandedHash | null;
    /** Returns the forked chain contract viewer result exposed by this provider. */
    forkedChainContractViewer(): ChainContractViewer | null;
    /** Returns the forked chain id result exposed by this provider. */
    forkedChainId(): import("@ariestools/sdk").BrandedHex | null;
    /** Returns the min withdrawal blocks result exposed by this provider. */
    minWithdrawalBlocks(): number;
    /** Returns the rewards contract result exposed by this provider. */
    rewardsContract(): (Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }) | import("@xyo-network/sdk").XyoQuantAddress;
    /** Returns the staking token address result exposed by this provider. */
    stakingTokenAddress(): (Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }) | import("@xyo-network/sdk").XyoQuantAddress;
}
//# sourceMappingURL=SimpleChainContractViewer.d.ts.map