import type { IPermissionService } from '@univerjs/core';
import { UnitAction } from '@univerjs/protocol';
import { PageTypeEnum } from '../slide.enum';
import { SlideElementEditPermission } from './permission-point/element/edit';
import { SlideMasterEditPermission } from './permission-point/master/edit';
import { SlidePageEditPermission } from './permission-point/page/edit';
import { SlideCommentPermission } from './permission-point/slide/comment';
import { SlideCopyPermission } from './permission-point/slide/copy';
import { SlideEditablePermission } from './permission-point/slide/editable';
import { SlideExportPermission } from './permission-point/slide/export';
import { SlidePrintPermission } from './permission-point/slide/print';
export declare const SLIDE_UNIT_PERMISSION_ACTIONS: readonly [UnitAction.Edit, UnitAction.Copy, UnitAction.Print, UnitAction.Export, UnitAction.Comment];
export type SlideUnitPermissionAction = typeof SLIDE_UNIT_PERMISSION_ACTIONS[number];
export declare const SLIDE_MASTER_VIEW_PERMISSION_OBJECT_ID = "master-view";
export declare function getSlidePagePermissionObjectId(pageId: string): string;
export declare function getSlideElementPermissionObjectId(sourcePageType: PageTypeEnum, pageId: string, elementId: string): string;
export declare function getSlideElementEditPermissionObjectIds(sourcePageType: PageTypeEnum, pageId: string, elementId: string): string[];
export declare function createSlidePermissionPoint(unitId: string, objectId: string, action: UnitAction): SlideElementEditPermission | SlideMasterEditPermission | SlidePageEditPermission | SlideCommentPermission | SlideCopyPermission | SlideEditablePermission | SlideExportPermission | SlidePrintPermission;
export declare function getSlidePermissionValue(permissionService: IPermissionService, unitId: string, objectId: string, action: UnitAction): boolean;
export declare function setSlidePermissionValue(permissionService: IPermissionService, unitId: string, objectId: string, action: UnitAction, value: boolean): void;
export declare function clearSlidePermissionValuesForUnit(permissionService: IPermissionService, unitId: string): void;
export declare function canEditSlideTargets(permissionService: IPermissionService, unitId: string, objectIds: Iterable<string>): boolean;
