import { ethers } from 'ethers';
import { BlockchainConfig, ContractAddresses } from './types';
export declare class ContractClient {
    private provider;
    private signer?;
    private contracts;
    constructor(rpcUrlOrConfig: string | BlockchainConfig, privateKey?: string, contractAddresses?: ContractAddresses);
    registerDID(did: string, publicKey: string, documentHash?: string): Promise<ethers.TransactionResponse>;
    updateDID(did: string, newPublicKey: string, documentHash?: string): Promise<ethers.TransactionResponse>;
    deactivateDID(did: string): Promise<ethers.TransactionResponse>;
    transferDID(did: string, newOwner: string): Promise<ethers.TransactionResponse>;
    resolveDID(did: string): Promise<any>;
    didExists(did: string): Promise<boolean>;
    getDIDsByOwner(owner: string): Promise<string[]>;
    authorizeIssuer(issuerDID: string): Promise<ethers.TransactionResponse>;
    deauthorizeIssuer(issuerDID: string): Promise<ethers.TransactionResponse>;
    publishRevocationList(issuerDID: string, credentialHashes: string[], signature: string, merkleRoot?: string): Promise<ethers.TransactionResponse>;
    revokeCredentials(issuerDID: string, credentialHashes: string[], signature: string): Promise<ethers.TransactionResponse>;
    isCredentialRevoked(issuerDID: string, credentialId: string): Promise<boolean>;
    isCredentialRevokedByHash(issuerHash: string, credentialHash: string): Promise<boolean>;
    getRevocationList(issuerDID: string): Promise<any>;
    getRevokedCredentialCount(issuerDID: string): Promise<bigint>;
    verifyRevocationProof(issuerDID: string, credentialHash: string, merkleProof: string[]): Promise<boolean>;
    registerSchema(name: string, description: string, schemaHash: string, issuerDID: string, version: string, schemaType: number, dependencies?: string[]): Promise<ethers.TransactionResponse>;
    updateSchema(schemaId: number, description: string, schemaHash: string, newVersion: string, dependencies?: string[]): Promise<ethers.TransactionResponse>;
    deactivateSchema(schemaId: number): Promise<ethers.TransactionResponse>;
    transferSchema(schemaId: number, newOwner: string): Promise<ethers.TransactionResponse>;
    getSchemasByIssuer(issuerDID: string): Promise<bigint[]>;
    getSchemaIdByName(issuerDID: string, name: string): Promise<bigint>;
    getSchemasByType(schemaType: number): Promise<bigint[]>;
    schemaExists(schemaId: number): Promise<boolean>;
    getTotalSchemaCount(): Promise<bigint>;
    getSchemaDependencies(schemaId: number): Promise<string[]>;
    hasCircularDependencies(schemaId: number): Promise<boolean>;
    getGasPrice(): Promise<bigint>;
    estimateGas(method: string, ...args: any[]): Promise<bigint>;
    waitForTransaction(txHash: string): Promise<ethers.TransactionReceipt | null>;
    getAddress(): string | null;
    getBalance(address?: string): Promise<bigint>;
    onDIDRegistered(callback: (did: string, owner: string, publicKey: string, timestamp: bigint) => void): void;
    onDIDUpdated(callback: (did: string, owner: string, newPublicKey: string, timestamp: bigint) => void): void;
    onRevocationListPublished(callback: (issuerHash: string, issuerDID: string, version: bigint, revokedCount: bigint, merkleRoot: string, timestamp: bigint) => void): void;
    onCredentialRevoked(callback: (issuerHash: string, credentialHash: string, issuerDID: string, timestamp: bigint) => void): void;
    onSchemaRegistered(callback: (schemaId: bigint, issuerDID: string, name: string, version: string, schemaType: number, timestamp: bigint) => void): void;
    removeAllListeners(): void;
    queryDIDEvents(filter: {
        owner?: string;
        fromBlock?: number | string;
        toBlock?: number | string;
    }): Promise<ethers.EventLog[]>;
    querySchemaEvents(filter: {
        issuerDID?: string;
        fromBlock?: number | string;
        toBlock?: number | string;
    }): Promise<ethers.EventLog[]>;
    queryRevocationEvents(filter: {
        issuerDID?: string;
        fromBlock?: number | string;
        toBlock?: number | string;
    }): Promise<ethers.EventLog[]>;
    checkRevocation(issuerDID: string, credentialHash: string): Promise<boolean>;
    getSchema(schemaIdOrName: string | number): Promise<any>;
}
//# sourceMappingURL=contract-client.d.ts.map