import { CredentialType } from "./VerifiableCredential"; import { Pluto } from "../buildingBlocks/Pluto"; type Claim = Record; export declare abstract class Credential implements Pluto.Storable { abstract credentialType: CredentialType; abstract recoveryId: string; abstract id: string; abstract issuer: string; abstract subject: string; abstract claims: Claim[]; abstract properties: Map; readonly uuid: string; getProperty(name: string): any; isProvable(): this is ProvableCredential; isStorable(): this is StorableCredential; isRevoked(): boolean; } export interface ProvableCredential { presentation(): unknown; verifiableCredential(): unknown; } export interface StorableCredential { toStorable(): { id: string; recoveryId: string; credentialData: string; issuer?: string; subject?: string; credentialCreated?: string; credentialUpdated?: string; credentialSchema?: string; validUntil?: string; revoked?: boolean; availableClaims?: string[]; }; } export {};