import type { EvmChainViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import type { Provider } from 'ethers';
import type { EvmRpcConnectionConfig } from '../../config/connections/index.js';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
/** Parameters for SimpleEvmChainViewer. */
export interface SimpleEvmChainViewerParams extends CreatableProviderParams {
    /** EVM JSON-RPC connection used to build the provider when one is not injected. */
    connection?: EvmRpcConnectionConfig;
    /** Explicit ethers provider (tests / callers that already hold one). */
    provider?: Provider;
}
/** Builds an ethers provider from an evm-rpc connection config. */
export declare function ethProviderFromEvmRpcConnection(connection: EvmRpcConnectionConfig): Provider;
/** Canonical source of the ethers provider for the process's backing EVM chain. */
export declare class SimpleEvmChainViewer extends AbstractCreatableProvider<SimpleEvmChainViewerParams> implements EvmChainViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["evm-rpc"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "EvmChainViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: never[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "EvmChainViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "EvmChainViewer";
    private _provider?;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns the provider result exposed by this provider. */
    provider(): Provider;
}
//# sourceMappingURL=SimpleEvmChainViewer.d.ts.map