import { ethers } from 'ethers';
import { Provider } from '@ethersproject/providers';
import { NetworkId } from '../utils';
/**
 * Base class for all contract wrappers, providing common functionality
 */
export declare abstract class BaseWrapper {
    protected _provider: Provider;
    protected _signer: ethers.Signer;
    protected _networkId?: NetworkId;
    protected _initialized: boolean;
    /**
     * Create wrapper instance
     * @param provider Provider instance
     * @param signer Signer instance
     */
    constructor(provider: Provider, signer: ethers.Signer);
    /**
     * Initialize network ID from signer
     * Must be called before using methods that depend on networkId
     */
    init(): Promise<void>;
    /**
     * Get contract address
     * @param contractName Contract name
     * @returns Contract address
     */
    protected getContractAddress(contractName: string): string;
    /**
     * Convert NetworkId to network key string
     * @param networkId Network ID
     * @returns Network key
     */
    private getNetworkKey;
    /**
     * Update Provider and Signer (when network changes)
     * @param provider New Provider
     * @param signer New Signer
     */
    updateConnection(provider: Provider, signer: ethers.Signer): void;
    /**
     * Get current Provider
     */
    get provider(): Provider;
    /**
     * Get current Signer
     */
    get signer(): ethers.Signer;
    /**
     * Get current network ID
     */
    get networkId(): NetworkId | undefined;
}
//# sourceMappingURL=base-wrapper.d.ts.map