import type { Project, SharedCredentialsRepository, User } from '@n8n/db'; import type { CredentialTypes } from '../../../../credential-types'; import type { CredentialsFinderService } from '../../../../credentials/credentials-finder.service'; import { type CredentialResolution } from './credential.types'; import type { ImportBindingMap } from '../../n8n-packages.types'; import type { PackageCredentialRequirement } from '../../spec/requirements.schema'; export interface CredentialMatcherContext { targetProject: Project; user: User; } export declare abstract class CredentialMatcher { protected readonly credentialsFinderService: CredentialsFinderService; protected readonly sharedCredentialsRepository: SharedCredentialsRepository; protected readonly credentialTypes: CredentialTypes; constructor(credentialsFinderService: CredentialsFinderService, sharedCredentialsRepository: SharedCredentialsRepository, credentialTypes: CredentialTypes); match(requirements: PackageCredentialRequirement[] | undefined, context: CredentialMatcherContext): Promise; protected abstract resolve(known: PackageCredentialRequirement[], context: CredentialMatcherContext): Promise; }