import type { UsersListFilterDto } from '@n8n/api-types'; import type { DeepPartial, EntityManager, Repository, SelectQueryBuilder } from '@n8n/typeorm'; import { DataSource } from '@n8n/typeorm'; import { BaseRepository } from './base-repository'; import { Project, User } from '../entities'; import { type OperationContext, TransactionRunner } from '../services/transaction'; export declare class UserRepository extends BaseRepository { constructor(dataSource: DataSource, transactionRunner: TransactionRunner); findManyByIds(userIds: string[], options?: { includeRole?: boolean; includeAuthIdentities?: boolean; offset?: number; limit?: number; }): Promise; findMany(options?: { includeRole?: boolean; offset?: number; limit?: number; }): Promise; findAllWithRoleAndAuthIdentities(): Promise; findByIdWithRole(id: string, ctx?: OperationContext): Promise; findByEmailWithRole(email: string): Promise; findOneByProjectIdOrFail(projectId: string): Promise; findByApiKey(apiKey: string): Promise; update(...args: Parameters['update']>): Promise; changeEmail(userId: string, oldEmail: string, newEmail: string): Promise<'changed' | 'stale' | 'email-taken'>; hasClaimedInstanceOwner(): Promise; deleteAllExcept(user: User): Promise; getByIds(transaction: EntityManager, ids: string[]): Promise; findManyByEmail(emails: string[]): Promise; deleteMany(userIds: string[]): Promise; findNonShellUser(email: string): Promise; countUsersByRole(): Promise>; getEmailsByIds(userIds: string[]): Promise; createUserWithProject(user: DeepPartial, transactionManager?: EntityManager): Promise<{ user: User; project: Project; }>; findEligibleByProjectOrGlobalRoles({ projectId, projectRoleSlugs, globalRoleSlugs, }: { projectId: string; projectRoleSlugs: string[]; globalRoleSlugs: string[]; }): Promise; findIdsWithGlobalOrProjectRoles({ projectIds, projectRoleSlugs, globalRoleSlugs, }: { projectIds: string[]; projectRoleSlugs: string[]; globalRoleSlugs: string[]; }): Promise; findPersonalOwnerForWorkflow(workflowId: string): Promise; findPersonalOwnerForProject(projectId: string): Promise; private applyUserListSelect; private applyUserListFilter; private applyUserListExpand; private applyUserListSort; private applyUserListPagination; buildUserQuery(listQueryOptions?: UsersListFilterDto): SelectQueryBuilder; }