import { IAccessRightsCRUD } from '@jacquesparis/objects-model';
import { EntityName } from '../../models/entity-name';
import { ObjectTypeDefinition } from './../../integration/extension.provider';
export declare const ACCESS_RIGHT_PROVIDER = "AccessRightsProvider";
export declare const AccessRightsEntity: typeof EntityName;
export declare enum AccessRightsScope {
    create = "create",
    read = "read",
    update = "update",
    delete = "delete",
    method = "method",
    view = "view"
}
export declare enum AccessRightsMgt {
    access = "access",
    owner = "owner"
}
export declare enum AccessRightsPermission {
    create = "create",
    read = "read",
    update = "update",
    delete = "delete",
    access = "access",
    owner = "owner"
}
export declare class AccessRightsCRUD implements IAccessRightsCRUD {
    create: boolean;
    read: boolean;
    update: boolean;
    delete: boolean;
    constructor(create?: boolean, read?: boolean, update?: boolean, _delete?: boolean, forcedValues?: {
        [scope in 'create' | 'read' | 'update' | 'delete']?: boolean;
    });
}
export declare class AccessRightsSet {
    create: boolean;
    read: boolean;
    update: boolean;
    delete: boolean;
    access: boolean;
    owner: boolean;
    toAccessRightsCRUD(): AccessRightsCRUD;
}
export declare class AccessRightsPermissions {
    treeRootNode: AccessRightsSet;
    treeChildrenNodes: AccessRightsSet;
}
export declare const ACCESS_RIGHT_SUBTYPE: {
    name: string;
    acl: boolean;
    owner: boolean;
    namespace: boolean;
    tree: boolean;
    min: number;
    max: number;
    exclusions: never[];
    mandatories: never[];
};
export declare const ACCESS_RIGHTS_DEFINITION_TYPE: ObjectTypeDefinition;
export declare const ACCESS_RIGHT_OWNERS_NODE: ObjectTypeDefinition;
export declare const ACCESS_RIGHTS_GROUP_TYPE: ObjectTypeDefinition;
export declare const ACCESS_RIGHTS_OWNERS_TYPE: ObjectTypeDefinition;
export declare const ACCESS_RIGHTS_ACCESS_MANAGERS_TYPE: ObjectTypeDefinition;
