import { type EthAddress } from '@ariestools/sdk';
import type { BaseContract } from 'ethers';
import type { CreatableProviderParams } from '../../protocol-sdk/index.js';
import { AbstractCreatableProvider } from '../../protocol-sdk/index.js';
/** Public contract for Evm Provider Params. */
export interface EvmProviderParams extends CreatableProviderParams {
    /** Contract address */
    address?: EthAddress;
    /** deployment Block configuration or state exposed by this contract. */
    deploymentBlock?: number;
}
/** Implements Abstract Evm Provider behavior for the SDK provider graph. */
export declare abstract class AbstractEvmProvider<TParams extends EvmProviderParams, TContract extends BaseContract> extends AbstractCreatableProvider<TParams> {
    protected _contract: TContract;
    private _address?;
    /** Submits the address operation to its backing provider. */
    get address(): EthAddress;
    protected get contract(): TContract;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    protected abstract connectContract(address: EthAddress): TContract;
}
//# sourceMappingURL=AbstractEvmProvider.d.ts.map