import type { RedactionFloor } from '@n8n/api-types'; import { SettingsRepository, SharedCredentialsRepository, SharedWorkflowRepository, WorkflowRepository } from '@n8n/db'; import { PERSONAL_SPACE_PUBLISHING_SETTING, PERSONAL_SPACE_SHARING_SETTING } from '@n8n/permissions'; import type { DistributiveOmit } from '@n8n/utils/types'; import { EventService } from '../events/event.service'; import type { RelayEventMap, UserLike } from '../events/maps/relay.event-map'; import { InstanceRedactionEnforcementService } from '../modules/redaction/instance-redaction-enforcement.service'; import { RoleService } from '../services/role.service'; export interface SecurityPolicyUpdate { personalSpacePublishing?: boolean; personalSpaceSharing?: boolean; redactionEnforcement?: { floor: RedactionFloor; }; } export interface SecurityPolicyReadResult { personalSpacePublishing: boolean; personalSpaceSharing: boolean; publishedPersonalWorkflowsCount: number; sharedPersonalWorkflowsCount: number; sharedPersonalCredentialsCount: number; redactionEnforcement: { floor: RedactionFloor; }; } type InstancePolicyUpdate = DistributiveOmit; export declare class SecuritySettingsService { private readonly settingsRepository; private readonly roleService; private readonly workflowRepository; private readonly sharedWorkflowRepository; private readonly sharedCredentialsRepository; private readonly instanceRedactionEnforcementService; private readonly eventService; private readonly PERSONAL_OWNER_ROLE_SLUG; constructor(settingsRepository: SettingsRepository, roleService: RoleService, workflowRepository: WorkflowRepository, sharedWorkflowRepository: SharedWorkflowRepository, sharedCredentialsRepository: SharedCredentialsRepository, instanceRedactionEnforcementService: InstanceRedactionEnforcementService, eventService: EventService); getSecuritySettings(): Promise; updateSecuritySettings(securityPolicyUpdate: SecurityPolicyUpdate, actor: UserLike): Promise; emitInstancePolicyUpdated(actor: UserLike, update: InstancePolicyUpdate): void; setPersonalSpaceSetting(setting: typeof PERSONAL_SPACE_PUBLISHING_SETTING | typeof PERSONAL_SPACE_SHARING_SETTING, enabled: boolean): Promise; arePersonalSpaceSettingsEnabled(): Promise<{ personalSpacePublishing: boolean; personalSpaceSharing: boolean; }>; getPublishedPersonalWorkflowsCount(): Promise; getSharedPersonalWorkflowsCount(): Promise; getSharedPersonalCredentialsCount(): Promise; private toEventUser; } export {};