import { Logger, LicenseState } from '@n8n/backend-common'; import type { User } from '@n8n/db'; import { ProjectRelationRepository, SharedWorkflowRepository, UserRepository } from '@n8n/db'; import { type ProjectRole, type WorkflowSharingRole, type Scope } from '@n8n/permissions'; import { RoleService } from '../services/role.service'; export type ShareWorkflowOptions = { scopes: Scope[]; projectId?: string; } | { projectRoles: ProjectRole[]; workflowRoles: WorkflowSharingRole[]; projectId?: string; }; export declare class WorkflowSharingService { private readonly sharedWorkflowRepository; private readonly roleService; private readonly projectRelationRepository; private readonly licenseState; private readonly userRepository; private readonly logger; constructor(sharedWorkflowRepository: SharedWorkflowRepository, roleService: RoleService, projectRelationRepository: ProjectRelationRepository, licenseState: LicenseState, userRepository: UserRepository, logger: Logger); getSharedWorkflowIds(user: User, options: ShareWorkflowOptions): Promise; getUserIdsWithAccessToWorkflow(workflowId: string): Promise; getUserIdsWithAccessToWorkflowSafe(workflowId: string): Promise; getSharedWorkflowIdsForScopes(user: User, scopes: Scope[], projectId?: string): Promise; getSharedWithMeIds(user: User): Promise; getSharedWorkflowScopes(workflowIds: string[], user: User): Promise>; getOwnedWorkflowsInPersonalProject(userId: string): Promise; rolesGrantingScope(user: User, scope: Scope): Promise<{ projectRoles: string[]; workflowRoles: string[]; } | undefined>; }