import type { default as Indy, CredDef, NymRole, Schema, GetNymResponse } from 'indy-sdk'; export interface LedgerService { connectToPools(): Promise; registerPublicDid(submitterDid: string, targetDid: string, verkey: string, alias: string, role?: NymRole): Promise; getPublicDid(did: string): Promise; getEndpointsForDid(did: string): Promise; registerSchema(did: string, schemaTemplate: SchemaTemplate): Promise; getSchema(schemaId: string): Promise; registerCredentialDefinition(did: string, credentialDefinitionTemplate: CredentialDefinitionTemplate): Promise; getCredentialDefinition(credentialDefinitionId: string): Promise; getRevocationRegistryDefinition(revocationRegistryDefinitionId: string): Promise; getRevocationRegistryDelta(revocationRegistryDefinitionId: string, from?: number, to?: number): Promise; getRevocationRegistry(revocationRegistryDefinitionId: string, timestamp: number): Promise; } export interface SchemaTemplate { name: string; version: string; attributes: string[]; } export interface CredentialDefinitionTemplate { schema: Schema; tag: string; signatureType: 'CL'; supportRevocation: boolean; } export interface ParseRevocationRegistryDefinitionTemplate { revocationRegistryDefinition: Indy.RevocRegDef; revocationRegistryDefinitionTxnTime: number; } export interface ParseRevocationRegistryDeltaTemplate { revocationRegistryDelta: Indy.RevocRegDelta; deltaTimestamp: number; } export interface ParseRevocationRegistryTemplate { revocationRegistry: Indy.RevocReg; ledgerTimestamp: number; } export interface IndyEndpointAttrib { endpoint?: string; types?: Array<'endpoint' | 'did-communication' | 'DIDComm'>; routingKeys?: string[]; [key: string]: unknown; }