import { Access } from "./etc.js"; import { PublicId } from "../vertices/properties/index.js"; import { Company } from "./companies.js"; import { User } from "./users.js"; import { Deep } from "../vertices/index.js"; //#region src/core/interfaces/other/policies.d.ts interface Action { targetResourceModel?: string; operation: (Access['CREATE'] | Access['READ'] | Access['UPDATE'] | Access['DELETE'])[]; } declare const APP_FEATURE_SELECTORS: readonly ["features::locationBooking", "features::substitutionPlanner"]; type AppFeatureSelector = typeof APP_FEATURE_SELECTORS[number]; declare const DEFAULT_APP_FEATURE_ACCESS: Record; type Statement = { resource: Pick | Pick; resourceModel: string; effect: boolean; } & ({ action: Action; type?: 'RESOURCE'; } | { selector: AppFeatureSelector[]; type: 'FEATURE'; }); type ResourceStatement = Extract; type FeatureStatement = Extract; interface Policy { id?: PublicId; users?: User[]; inline?: boolean; organization?: Company.complete; displayName?: string; description?: string; statements?: Statement[]; createdAt?: Date; updatedAt?: Date; } //#endregion export { APP_FEATURE_SELECTORS, Action, AppFeatureSelector, DEFAULT_APP_FEATURE_ACCESS, FeatureStatement, Policy, ResourceStatement, Statement }; //# sourceMappingURL=policies.d.ts.map