import { ethers } from 'ethers';
import { Provider } from '@ethersproject/providers';
import { NetworkId } from '../utils';
/**
 * Base class for all API modules, providing shared functionality
 */
export declare abstract class BaseApi {
    protected _provider: Provider;
    protected _signer: ethers.Signer;
    protected _networkId?: NetworkId;
    protected _initialized: boolean;
    /**
     * Create API module 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>;
    /**
     * Update connection information (when network changes)
     * @param provider New Provider
     * @param signer New Signer
     */
    updateConnection(provider: Provider, signer: ethers.Signer): void;
    /**
     * Method called when connection is updated, can be overridden by subclasses
     */
    protected onConnectionUpdated(): Promise<void>;
    /**
     * Get current network ID
     */
    get networkId(): NetworkId | undefined;
    /**
     * Get current Provider
     */
    get provider(): Provider;
    /**
     * Get current Signer
     */
    get signer(): ethers.Signer;
    /**
     * Get current user address
     */
    getAddress(): Promise<string>;
}
//# sourceMappingURL=base-api.d.ts.map