import type { ProviderId, IdentityId, ProviderTokens, ProviderToken, IdentitySignedClaim } from './types.js'; import type { DB, DBTransaction, LevelPath } from '@matrixai/db'; import type Provider from './Provider.js'; import type KeyRing from '../keys/KeyRing.js'; import type Sigchain from '../sigchain/Sigchain.js'; import type GestaltGraph from '../gestalts/GestaltGraph.js'; import { createDestroyStartStop } from '@matrixai/async-init'; import Logger from '@matrixai/logger'; interface IdentitiesManager extends createDestroyStartStop.CreateDestroyStartStop { } declare class IdentitiesManager { static createIdentitiesManager({ db, sigchain, keyRing, gestaltGraph, logger, fresh, }: { db: DB; sigchain: Sigchain; keyRing: KeyRing; gestaltGraph: GestaltGraph; logger: Logger; fresh?: boolean; }): Promise; protected keyRing: KeyRing; protected db: DB; protected sigchain: Sigchain; protected gestaltGraph: GestaltGraph; protected logger: Logger; protected identitiesDbPath: LevelPath; /** * Tokens stores ProviderId -> ProviderTokens */ protected identitiesTokensDbPath: LevelPath; protected providers: Map; constructor({ keyRing, db, sigchain, gestaltGraph, logger, }: { keyRing: KeyRing; db: DB; sigchain: Sigchain; gestaltGraph: GestaltGraph; logger: Logger; }); start({ fresh }?: { fresh?: boolean; }): Promise; stop(): Promise; destroy(): Promise; getProviders(): Record; getProvider(pId: ProviderId): Provider | undefined; registerProvider(p: Provider): void; unregisterProvider(pId: ProviderId): void; getTokens(providerId: ProviderId, tran?: DBTransaction): Promise; getToken(providerId: ProviderId, identityId: IdentityId, tran?: DBTransaction): Promise; putToken(providerId: ProviderId, identityId: IdentityId, providerToken: ProviderToken, tran?: DBTransaction): Promise; delToken(providerId: ProviderId, identityId: IdentityId, tran?: DBTransaction): Promise; handleClaimIdentity(providerId: ProviderId, identityId: IdentityId): Promise; } export default IdentitiesManager;