import { VerifiableCredential, PhoneNumber, EmailAddress, Address } from '../types'; import { DIDDocument } from '../types/did'; export interface RevocationList { issuerDID: string; revokedCredentialIds: string[]; timestamp: number; signature: string; } export interface CredentialSchema { id?: string; name: string; description: string; properties: Record; issuerDID: string; version: string; active: boolean; } export interface StorageConfig { provider: 'memory' | 'file' | 'blockchain' | 'hybrid' | 'ipfs'; file?: { path: string; encryption: boolean; }; blockchain?: { network: 'ethereum' | 'polygon' | 'arbitrum'; rpcUrl: string; privateKey?: string; contracts: { didRegistry: string; revocationRegistry: string; schemaRegistry: string; }; }; ipfs?: { host: string; port: number; protocol: string; }; cache?: { enabled: boolean; ttl: number; maxSize: number; }; hybrid?: { routing?: { dids?: 'blockchain' | 'ipfs' | 'local'; credentials?: 'blockchain' | 'ipfs' | 'local'; revocations?: 'blockchain' | 'ipfs' | 'local'; schemas?: 'blockchain' | 'ipfs' | 'local'; }; sizeThresholds?: { useIPFS?: number; useLocal?: number; }; sync?: { enabled: boolean; interval?: number; conflictResolution?: 'newest' | 'blockchain' | 'local'; }; fallback?: { enabled: boolean; order?: ('blockchain' | 'ipfs' | 'local')[]; retries?: number; retryDelay?: number; }; }; } export interface IStorageProvider { storeDID(did: string, document: DIDDocument): Promise; resolveDID(did: string): Promise; listDIDs(owner?: string): Promise; storeCredential(credential: VerifiableCredential): Promise; getCredential(id: string): Promise; listCredentials(holder: string): Promise; deleteCredential(id: string): Promise; publishRevocation(issuerDID: string, revocationList: RevocationList): Promise; checkRevocation(issuerDID: string, credentialId: string): Promise; getRevocationList(issuerDID: string): Promise; storeKeyPair(identifier: string, encryptedKeyPair: string): Promise; retrieveKeyPair(identifier: string): Promise; deleteKeyPair(identifier: string): Promise; registerSchema(schema: CredentialSchema): Promise; getSchema(schemaId: string): Promise; listSchemas(issuerDID?: string): Promise; storePhoneNumber(userDID: string, phoneNumber: PhoneNumber): Promise; getPhoneNumber(userDID: string, phoneId: string): Promise; listPhoneNumbers(userDID: string): Promise; updatePhoneNumber(userDID: string, phoneId: string, phoneNumber: Partial): Promise; deletePhoneNumber(userDID: string, phoneId: string): Promise; storeEmailAddress(userDID: string, emailAddress: EmailAddress): Promise; getEmailAddress(userDID: string, emailId: string): Promise; listEmailAddresses(userDID: string): Promise; updateEmailAddress(userDID: string, emailId: string, emailAddress: Partial): Promise; deleteEmailAddress(userDID: string, emailId: string): Promise; storeAddress(userDID: string, address: Address): Promise; getAddress(userDID: string, addressId: string): Promise
; listAddresses(userDID: string): Promise; updateAddress(userDID: string, addressId: string, address: Partial
): Promise; deleteAddress(userDID: string, addressId: string): Promise; clear(): Promise; } //# sourceMappingURL=types.d.ts.map