import type { Constructable } from '@n8n/di'; import type { ICredentialContext, ICredentialDataDecryptedObject, INodeProperties } from 'n8n-workflow'; export type CredentialResolverConfiguration = Record; export type CredentialResolverHandle = { configuration: CredentialResolverConfiguration; resolverName: string; resolverId: string; }; export interface CredentialResolverMetadata { name: string; description: string; displayName?: string; options?: INodeProperties[]; } export interface ICredentialResolver { metadata: CredentialResolverMetadata; getSecret(credentialId: string, context: ICredentialContext, handle: CredentialResolverHandle): Promise; setSecret(credentialId: string, context: ICredentialContext, data: ICredentialDataDecryptedObject, handle: CredentialResolverHandle): Promise; deleteSecret?(credentialId: string, context: ICredentialContext, handle: CredentialResolverHandle): Promise; deleteAllSecrets?(handle: CredentialResolverHandle): Promise; validateOptions(options: CredentialResolverConfiguration): Promise; validateIdentity?(context: ICredentialContext, handle: CredentialResolverHandle): Promise; init?(): Promise; } export type CredentialResolverClass = Constructable;