import type { IPermissionService } from '@univerjs/core';
import { UnitAction } from '@univerjs/protocol';
import { BaseCommentPermission } from './permission-point/base/comment';
import { BaseCopyPermission } from './permission-point/base/copy';
import { BaseEditablePermission } from './permission-point/base/editable';
import { BaseExportPermission } from './permission-point/base/export';
import { BaseDashboardEditPermission } from './permission-point/dashboard/edit';
import { BaseFieldEditPermission } from './permission-point/field/edit';
import { BaseRecordEditPermission } from './permission-point/record/edit';
import { BaseTableEditPermission } from './permission-point/table/edit';
import { BaseViewEditPermission } from './permission-point/view/edit';
export declare const BASE_UNIT_PERMISSION_ACTIONS: readonly [UnitAction.Edit, UnitAction.Copy, UnitAction.Export, UnitAction.Comment];
export type BaseUnitPermissionAction = typeof BASE_UNIT_PERMISSION_ACTIONS[number];
export declare function getBaseTablePermissionObjectId(tableId: string): string;
export declare function getBaseFieldPermissionObjectId(tableId: string, fieldId: string): string;
export declare function getBaseRecordPermissionObjectId(tableId: string, recordId: string): string;
export declare function getBaseViewPermissionObjectId(tableId: string, viewId: string): string;
export declare function getBaseDashboardPermissionObjectId(dashboardId: string): string;
export declare function createBasePermissionPoint(unitId: string, objectId: string, action: UnitAction): BaseCommentPermission | BaseCopyPermission | BaseEditablePermission | BaseExportPermission | BaseDashboardEditPermission | BaseFieldEditPermission | BaseRecordEditPermission | BaseTableEditPermission | BaseViewEditPermission;
export declare function getBasePermissionValue(permissionService: IPermissionService, unitId: string, objectId: string, action: UnitAction): boolean;
export declare function setBasePermissionValue(permissionService: IPermissionService, unitId: string, objectId: string, action: UnitAction, value: boolean): void;
export declare function clearBasePermissionValue(permissionService: IPermissionService, unitId: string, objectId: string, action: UnitAction): void;
export declare function clearBasePermissionValuesForUnit(permissionService: IPermissionService, unitId: string): void;
export declare function canEditBaseTargets(permissionService: IPermissionService, unitId: string, objectIds: Iterable<string>): boolean;
