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';
export interface EvmProviderParams extends CreatableProviderParams {
    /** Contract address */
    address?: EthAddress;
    deploymentBlock?: number;
}
export declare abstract class AbstractEvmProvider<TParams extends EvmProviderParams, TContract extends BaseContract> extends AbstractCreatableProvider<TParams> {
    protected _contract: TContract;
    private _address?;
    get address(): EthAddress;
    protected get contract(): TContract;
    createHandler(): Promise<void>;
    protected abstract connectContract(address: EthAddress): TContract;
}
//# sourceMappingURL=AbstractEvmProvider.d.ts.map