import type { RoleChangeRequestDto } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import type { AuthIdentity, PublicUser } from '@n8n/db';
import { User, UserRepository, ProjectRepository } from '@n8n/db';
import type { IUserSettings } from 'n8n-workflow';
import { EventService } from '../events/event.service';
import type { Invitation } from '../interfaces';
import { PostHogClient } from '../posthog';
import type { UserRequest } from '../requests';
import { UrlService } from '../services/url.service';
import { UserManagementMailer } from '../user-management/email';
import { JwtService } from './jwt.service';
import { OwnershipService } from './ownership.service';
import { ProjectService } from './project.service.ee';
import { PublicApiKeyService } from './public-api-key.service';
import { RoleService } from './role.service';
export declare class UserService {
    private readonly logger;
    private readonly userRepository;
    private readonly projectRepository;
    private readonly mailer;
    private readonly urlService;
    private readonly eventService;
    private readonly ownershipService;
    private readonly publicApiKeyService;
    private readonly roleService;
    private readonly globalConfig;
    private readonly jwtService;
    private readonly projectService;
    constructor(logger: Logger, userRepository: UserRepository, projectRepository: ProjectRepository, mailer: UserManagementMailer, urlService: UrlService, eventService: EventService, ownershipService: OwnershipService, publicApiKeyService: PublicApiKeyService, roleService: RoleService, globalConfig: GlobalConfig, jwtService: JwtService, projectService: ProjectService);
    update(userId: string, data: Partial<User>): Promise<void>;
    getManager(): import("@n8n/db").EntityManager;
    assertGetUsersAccess(user: User, projectId?: string): Promise<void>;
    updateSettings(userId: string, newSettings: Partial<IUserSettings>): Promise<void>;
    findUserWithAuthIdentities(userId: string): Promise<User>;
    findSsoIdentity(userId: string): Promise<AuthIdentity | undefined>;
    toPublic(user: User, options?: {
        posthog?: PostHogClient;
        withScopes?: boolean;
        mfaAuthenticated?: boolean;
    }): Promise<PublicUser>;
    private addFeatureFlags;
    private sendEmails;
    inviteUsers(owner: User, invitations: Invitation[]): Promise<{
        usersInvited: UserRequest.InviteResponse[];
        usersCreated: string[];
    }>;
    changeUserRole(user: User, newRole: RoleChangeRequestDto): Promise<void>;
    private processTokenBasedInvite;
    getInvitationIdsFromPayload(token: string): Promise<{
        inviterId: string;
        inviteeId: string;
    }>;
}
