import type { ProjectRole } from '@n8n/api-types';
import type { Scope } from '@n8n/permissions';
import type { EntityManager } from '@n8n/typeorm';
import type { CredentialsEntity } from '../databases/entities/credentials-entity';
import type { SharedCredentials, CredentialSharingRole } from '../databases/entities/shared-credentials';
import type { User } from '../databases/entities/user';
import { CredentialsRepository } from '../databases/repositories/credentials.repository';
import { SharedCredentialsRepository } from '../databases/repositories/shared-credentials.repository';
import { RoleService } from '../services/role.service';
export declare class CredentialsFinderService {
    private readonly sharedCredentialsRepository;
    private readonly roleService;
    private readonly credentialsRepository;
    constructor(sharedCredentialsRepository: SharedCredentialsRepository, roleService: RoleService, credentialsRepository: CredentialsRepository);
    findCredentialsForUser(user: User, scopes: Scope[]): Promise<CredentialsEntity[]>;
    findCredentialForUser(credentialsId: string, user: User, scopes: Scope[]): Promise<CredentialsEntity | null>;
    findAllCredentialsForUser(user: User, scopes: Scope[], trx?: EntityManager): Promise<{
        projectId: string;
        name: string;
        data: string;
        type: string;
        shared: SharedCredentials[];
        isManaged: boolean;
        id: string;
        createdAt: Date;
        updatedAt: Date;
    }[]>;
    getCredentialIdsByUserAndRole(userIds: string[], options: {
        scopes: Scope[];
    } | {
        projectRoles: ProjectRole[];
        credentialRoles: CredentialSharingRole[];
    }, trx?: EntityManager): Promise<string[]>;
}
