/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type Hashable, type PlainObject } from '@finos/legend-shared';
import type { V1_StereotypePtr } from '../../model/packageableElements/domain/V1_StereotypePtr.js';
import { AppDirLevel } from '../../../../../../graph/metamodel/pure/packageableElements/ingest/IngestDefinition.js';
export { AppDirLevel as V1_AppDirLevel };
export declare class V1_User {
    name: string;
    userType: V1_UserType;
}
export declare enum V1_UserType {
    WORKFORCE_USER = "WORKFORCE_USER",
    SYSTEM_ACCOUNT = "SYSTEM_ACCOUNT"
}
export declare class V1_AppDirNode implements Hashable {
    appDirId: number;
    level: AppDirLevel;
    get hashCode(): string;
}
export declare class V1_PaginationMetadataRecord {
    hasNextPage: boolean;
    lastValuesMap: Record<string, string>;
    size: number;
}
export declare class V1_OrganizationalScope {
}
export declare class V1_AppDirOrganizationalScope extends V1_OrganizationalScope {
    appDirNode: V1_AppDirNode[];
}
export declare class V1_AdhocTeam extends V1_OrganizationalScope {
    users: V1_User[];
}
export declare class V1_ProducerScope extends V1_OrganizationalScope {
    did: string;
}
export declare class V1_UnknownOrganizationalScopeType extends V1_OrganizationalScope {
    content: PlainObject;
}
export declare class V1_EntitlementsAccessPoint {
    name: string;
    groups: string[];
}
export declare class V1_AccessPointGroupStereotypeMapping {
    accessPointGroup: string;
    stereotypes: V1_StereotypePtr[];
}
export declare class V1_EntitlementsDataProduct {
    name: string;
    accessPoints: V1_EntitlementsAccessPoint[];
    accessPointGroupStereotypeMappings: V1_AccessPointGroupStereotypeMapping[];
    owner: V1_AppDirNode;
}
export declare class V1_LogicalEntitlements {
    roleUniverse: V1_Role[];
    roleMemberships: V1_RoleMembership[];
    privileges: V1_Privilege[];
}
export declare class V1_Role {
    name: string;
}
export declare class V1_RoleMembership {
    user: V1_User;
    role: V1_Role;
}
export declare class V1_Privilege {
    subject: V1_Role;
    action: V1_Action;
    resource: V1_Resource;
}
export declare enum V1_Action {
    READ = 0
}
export declare class V1_Resource {
}
export declare class V1_ConsumerEntitlementResource extends V1_Resource {
}
export declare class V1_AccessPointGroupReference extends V1_ConsumerEntitlementResource {
    dataProduct: V1_EntitlementsDataProduct;
    accessPointGroup: string;
}
export declare class V1_DataBundle extends V1_ConsumerEntitlementResource {
    content: PlainObject;
}
export declare class V1_ContractUserMembership {
    guid: string;
    user: V1_User;
    status: V1_UserApprovalStatus;
}
export declare enum V1_UserApprovalStatus {
    PENDING = "PENDING",
    APPROVED = "APPROVED",
    DENIED = "DENIED",
    REVOKED = "REVOKED",
    CLOSED = "CLOSED"
}
//# sourceMappingURL=V1_CoreEntitlements.d.ts.map