import type { Contract, Wallet, Provider } from 'ethers';
import { BlockchainConfig, ContractAddresses } from './types';
export declare class ContractClient {
    private rpcUrlOrConfig;
    private privateKey?;
    private contractAddresses?;
    private provider;
    private signer?;
    private contracts;
    private initialized;
    private initPromise;
    constructor(rpcUrlOrConfig: string | BlockchainConfig, privateKey?: string | undefined, contractAddresses?: ContractAddresses | undefined);
    private initialize;
    private doInitialize;
    registerDID(did: string, didDocument: string): Promise<any>;
    resolveDID(did: string): Promise<string>;
    updateDID(did: string, didDocument: string): Promise<any>;
    deactivateDID(did: string): Promise<any>;
    isDIDActive(did: string): Promise<boolean>;
    publishRevocationList(issuerDID: string, listId: string, revokedCredentials: string[]): Promise<any>;
    isCredentialRevoked(issuerDID: string, credentialId: string): Promise<boolean>;
    getRevocationList(issuerDID: string, listId: string): Promise<string[]>;
    registerSchema(schemaId: string, schema: string): Promise<any>;
    getSchema(schemaId: string): Promise<string>;
    updateSchema(schemaId: string, schema: string): Promise<any>;
    deactivateSchema(schemaId: string): Promise<any>;
    isSchemaActive(schemaId: string): Promise<boolean>;
    getBlockNumber(): Promise<number>;
    waitForTransaction(txHash: string, confirmations?: number): Promise<any>;
    getProvider(): Provider;
    getSigner(): Wallet | undefined;
    getContracts(): {
        didRegistry: Contract | null;
        revocationRegistry: Contract | null;
        schemaRegistry: Contract | null;
    };
}
//# sourceMappingURL=contract-client-lazy.d.ts.map