@casual-simulation/aux-common
Version:
Common library for AUX projects
2,543 lines • 80.2 kB
TypeScript
import { z } from 'zod';
/**
* The possible types of subjects that can be affected by permissions.
*
* - "user" - The permission is for a user.
* - "inst" - The permission is for an inst.
* - "role" - The permission is for a role.
*
* @dochash types/permissions
* @doctitle Permissions Types
* @docsidebar Permissions
* @docdescription Types that represent permissions that control access to resources.
* @docname SubjectType
*/
export type SubjectType = 'user' | 'inst' | 'role';
export declare const DATA_RESOURCE_KIND = "data";
export declare const FILE_RESOURCE_KIND = "file";
export declare const EVENT_RESOURCE_KIND = "event";
export declare const MARKER_RESOURCE_KIND = "marker";
export declare const ROLE_RESOURCE_KIND = "role";
export declare const INST_RESOURCE_KIND = "inst";
export declare const LOOM_RESOURCE_KIND = "loom";
export declare const SLOYD_RESOURCE_KIND = "ai.sloyd";
export declare const HUME_RESOURCE_KIND = "ai.hume";
export declare const OPENAI_REALTIME_RESOURCE_KIND = "ai.openai.realtime";
export declare const AI_CHAT_RESOURCE_KIND = "ai.chat";
export declare const AI_IMAGE_RESOURCE_KIND = "ai.image";
export declare const AI_SKYBOX_RESOURCE_KIND = "ai.skybox";
export declare const WEBHOOK_RESOURCE_KIND = "webhook";
export declare const NOTIFICATION_RESOURCE_KIND = "notification";
export declare const PACKAGE_RESOURCE_KIND = "package";
export declare const PACKAGE_VERSION_RESOURCE_KIND = "package.version";
export declare const SEARCH_RESOURCE_KIND = "search";
export declare const DATABASE_RESOURCE_KIND = "database";
export declare const PURCHASABLE_ITEM_RESOURCE_KIND = "purchasableItem";
export declare const CONTRACT_RESOURCE_KIND = "contract";
export declare const INVOICE_RESOURCE_KIND = "invoice";
/**
* The possible types of resources that can be affected by permissions.
*
* @dochash types/permissions
* @docname ResourceKinds
*/
export type ResourceKinds = 'data' | 'file' | 'event' | 'marker' | 'role' | 'inst' | 'webhook' | 'notification' | 'package' | 'package.version' | 'search' | 'loom' | 'ai.sloyd' | 'ai.hume' | 'ai.openai.realtime' | 'ai.chat' | 'ai.image' | 'ai.skybox' | 'database' | 'purchasableItem' | 'contract' | 'invoice';
export declare const READ_ACTION = "read";
export declare const CREATE_ACTION = "create";
export declare const UPDATE_ACTION = "update";
export declare const DELETE_ACTION = "delete";
export declare const ASSIGN_ACTION = "assign";
export declare const UNASSIGN_ACTION = "unassign";
export declare const INCREMENT_ACTION = "increment";
export declare const COUNT_ACTION = "count";
export declare const LIST_ACTION = "list";
export declare const GRANT_PERMISSION_ACTION = "grantPermission";
export declare const REVOKE_PERMISSION_ACTION = "revokePermission";
export declare const GRANT_ACTION = "grant";
export declare const REVOKE_ACTION = "revoke";
export declare const SEND_ACTION_ACTION = "sendAction";
export declare const UPDATE_DATA_ACTION = "updateData";
export declare const RUN_ACTION = "run";
export declare const SEND_ACTION = "send";
export declare const SUBSCRIBE_ACTION = "subscribe";
export declare const UNSUBSCRIBE_ACTION = "unsubscribe";
export declare const LIST_SUBSCRIPTIONS_ACTION = "listSubscriptions";
export declare const PURCHASE_ACTION = "purchase";
export declare const APPROVE_ACTION = "approve";
export declare const CANCEL_ACTION = "cancel";
/**
* The possible types of actions that can be performed on resources.
*
* @dochash types/permissions
* @docname ActionKinds
*/
export type ActionKinds = 'read' | 'create' | 'update' | 'delete' | 'assign' | 'unassign' | 'increment' | 'count' | 'list' | 'grantPermission' | 'revokePermission' | 'grant' | 'revoke' | 'sendAction' | 'updateData' | 'run' | 'send' | 'subscribe' | 'unsubscribe' | 'listSubscriptions' | 'purchase' | 'approve' | 'cancel';
/**
* The possible types of actions that can be performed on data resources.
*
* @dochash types/permissions
* @docname DataActionKinds
*/
export type DataActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list';
/**
* The possible types of actions that can be performed on file resources.
*
* @dochash types/permissions
* @docname FileActionKinds
*/
export type FileActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list';
/**
* The possible types of actions that can be performed on event resources.
*
* @dochash types/permissions
* @docname EventActionKinds
*/
export type EventActionKinds = 'increment' | 'count' | 'update' | 'list';
/**
* The possible types of actions that can be performed on marker resources.
*
* @dochash types/permissions
* @docname MarkerActionKinds
*/
export type MarkerActionKinds = 'assign' | 'unassign' | 'grantPermission' | 'revokePermission' | 'read';
/**
* The possible types of actions that can be performed on roles resources.
*
* @dochash types/permissions
* @docname RoleActionKinds
*/
export type RoleActionKinds = 'grant' | 'revoke' | 'read' | 'update' | 'list';
/**
* The possible types of actions that can be performed on inst resources.
*
* @dochash types/permissions
* @docname InstActionKinds
*/
export type InstActionKinds = 'create' | 'read' | 'update' | 'updateData' | 'delete' | 'list' | 'sendAction';
/**
* The possible types of actions that can be performed on loom resources.
*
* @dochash types/permissions
* @docname LoomActionKinds
*/
export type LoomActionKinds = 'create';
/**
* The possible types of actions that can be performed on ai.sloyd resources.
*
* @dochash types/permissions
* @docname SloydActionKinds
*/
export type SloydActionKinds = 'create';
/**
* The possible types of actions that can be performed on ai.hume resources.
*
* @dochash types/permissions
* @docname HumeActionKinds
*/
export type HumeActionKinds = 'create';
/**
* The possible types of actions that can be performed on ai.openai.realtime resources.
*
* @dochash types/permissions
* @docname OpenAIRealtimeActionKinds
*/
export type OpenAIRealtimeActionKinds = 'create';
/**
* The possible types of actions that can be performed on ai.chat resources.
*
* @dochash types/permissions
* @docname AIChatActionKinds
*/
export type AIChatActionKinds = 'create';
/**
* The possible types of actions that can be performed on ai.image resources.
*
* @dochash types/permissions
* @docname AIImageActionKinds
*/
export type AIImageActionKinds = 'create';
/**
* The possible types of actions that can be performed on ai.skybox resources.
*
* @dochash types/permissions
* @docname AISkyboxActionKinds
*/
export type AISkyboxActionKinds = 'create';
/**
* The possible types of actions that can be performed on webhook resources.
*
* @dochash types/permissions
* @docname WebhookActionKinds
*/
export type WebhookActionKinds = 'create' | 'read' | 'update' | 'delete' | 'list' | 'run';
/**
* The possible types of actions that can be performed on notification resources.
*
* @dochash types/permissions
* @docname NotificationActionKinds
*/
export type NotificationActionKinds = 'create' | 'read' | 'update' | 'delete' | 'list' | 'send' | 'subscribe' | 'unsubscribe' | 'listSubscriptions';
/**
* The possible types of actions that can be performed on package resources.
*
* @dochash types/permissions
* @docname PackageActionKinds
*/
export type PackageActionKinds = 'create' | 'read' | 'update' | 'delete' | 'list' | 'run';
/**
* The possible types of actions that can be performed on package.version resources.
*
* @dochash types/permissions
* @docname PackageVersionActionKinds
*/
export type PackageVersionActionKinds = 'create' | 'read' | 'update' | 'delete' | 'list' | 'run';
/**
* The possible types of actions that can be performed on search resources.
*
* @dochash types/permissions
* @docname SearchActionKinds
*/
export type SearchActionKinds = 'create' | 'read' | 'update' | 'delete' | 'list';
/**
* The possible types of actions that can be performed on database resources.
*
* @dochash types/permissions
* @docname DatabaseActionKinds
*/
export type DatabaseActionKinds = 'create' | 'read' | 'update' | 'delete' | 'list';
/**
* The possible types of actions that can be performed on purchasableItem resources.
*
* @dochash types/permissions
* @docname PurchasableItemActionKinds
*/
export type PurchasableItemActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list' | 'purchase';
/**
* The possible types of actions that can be performed on contract resources.
*
* @dochash types/permissions
* @docname ContractActionKinds
*/
export type ContractActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list' | 'purchase' | 'cancel';
/**
* The possible types of actions that can be performed on invoice resources.
*
* @dochash types/permissions
* @docname InvoiceActionKinds
*/
export type InvoiceActionKinds = 'read' | 'create' | 'update' | 'delete' | 'list' | 'approve' | 'cancel';
/**
* The possible types of permissions that can be added to policies.
*
* @dochash types/permissions
* @doctitle Permissions Types
* @docsidebar Permissions
* @docdescription Types that represent permissions that control access to resources.
* @docname AvailablePermissions
*/
export type AvailablePermissions = DataPermission | FilePermission | EventPermission | MarkerPermission | RolePermission | InstPermission | PurchasableItemPermission | LoomPermission | SloydPermission | HumePermission | OpenAIRealtimePermission | AIChatPermission | AIImagePermission | AISkyboxPermission | WebhookPermission | NotificationPermission | PackagePermission | PackageVersionPermission | SearchPermission | DatabasePermission | ContractPermission | InvoicePermission;
export declare const SUBJECT_TYPE_VALIDATION: (() => z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>>;
};
export declare const DATA_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const FILE_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const EVENT_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
update: "update";
increment: "increment";
count: "count";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
update: "update";
increment: "increment";
count: "count";
list: "list";
}>>;
};
export declare const MARKER_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
assign: "assign";
unassign: "unassign";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
assign: "assign";
unassign: "unassign";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
}>>;
};
export declare const ROLE_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
update: "update";
list: "list";
grant: "grant";
revoke: "revoke";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
update: "update";
list: "list";
grant: "grant";
revoke: "revoke";
}>>;
};
export declare const INST_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
sendAction: "sendAction";
updateData: "updateData";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
sendAction: "sendAction";
updateData: "updateData";
}>>;
};
export declare const LOOM_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const SLOYD_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const HUME_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const OPENAI_REALTIME_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const AI_CHAT_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const AI_IMAGE_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const AI_SKYBOX_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
create: "create";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
create: "create";
}>>;
};
export declare const WEBHOOK_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const NOTIFICATION_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
}>>;
};
export declare const PACKAGE_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const PACKAGE_VERSION_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const SEARCH_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const DATABASE_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
};
export declare const PURCHASABLE_ITEM_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
}>>;
};
export declare const CONTRACT_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
cancel: "cancel";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
cancel: "cancel";
}>>;
};
export declare const INVOICE_ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
approve: "approve";
cancel: "cancel";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
approve: "approve";
cancel: "cancel";
}>>;
};
export declare const RESOURCE_KIND_VALIDATION: (() => z.ZodEnum<{
search: "search";
inst: "inst";
file: "file";
event: "event";
role: "role";
data: "data";
marker: "marker";
loom: "loom";
"ai.sloyd": "ai.sloyd";
"ai.hume": "ai.hume";
"ai.openai.realtime": "ai.openai.realtime";
"ai.chat": "ai.chat";
"ai.image": "ai.image";
"ai.skybox": "ai.skybox";
webhook: "webhook";
notification: "notification";
package: "package";
"package.version": "package.version";
database: "database";
purchasableItem: "purchasableItem";
contract: "contract";
invoice: "invoice";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
search: "search";
inst: "inst";
file: "file";
event: "event";
role: "role";
data: "data";
marker: "marker";
loom: "loom";
"ai.sloyd": "ai.sloyd";
"ai.hume": "ai.hume";
"ai.openai.realtime": "ai.openai.realtime";
"ai.chat": "ai.chat";
"ai.image": "ai.image";
"ai.skybox": "ai.skybox";
webhook: "webhook";
notification: "notification";
package: "package";
"package.version": "package.version";
database: "database";
purchasableItem: "purchasableItem";
contract: "contract";
invoice: "invoice";
}>>;
};
export declare const ACTION_KINDS_VALIDATION: (() => z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
assign: "assign";
unassign: "unassign";
increment: "increment";
count: "count";
list: "list";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
grant: "grant";
revoke: "revoke";
sendAction: "sendAction";
updateData: "updateData";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
purchase: "purchase";
approve: "approve";
cancel: "cancel";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
assign: "assign";
unassign: "unassign";
increment: "increment";
count: "count";
list: "list";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
grant: "grant";
revoke: "revoke";
sendAction: "sendAction";
updateData: "updateData";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
purchase: "purchase";
approve: "approve";
cancel: "cancel";
}>>;
};
/**
* The scopes that can be used for requested entitlements.
* This can be used to limit the entitlement to requesting a category of resources.
* For example, the "personal" scope would limit the entitlement to requesting access to the user's personal resources.
*
* - "personal" - The entitlement is for personal (user-specific) records. This would allow the package to request access to resources in the user's player record. Once granted, the package would have access to the user's personal record.
* - "owned" - The entitlement is for user (user-owned) records. This would allow the package to request access to resources in a record that the user owns. Once granted, the package would have access to the user's owned records.
* - "studio" - The entitlement is for studio records. This would allow the package to request access to resources in studios in which the user is an admin or member of.
* - "shared" - The entitlement is for shared records. This would allow the package to request access to records that are either owned or granted to the user.
* - "designated" - The entitlement is for specific records. This would allow the package to only request access to specific records.
*/
export type EntitlementScope = 'personal' | 'owned' | 'studio' | 'shared' | 'designated';
/**
* The scopes that can be granted for entitlements.
* Compared to the requested entitlement scopes, the granted entitlement scopes are more restrictive.
*
* This ultimately means that while a package can have the ability to request access to a bunch of different records,
* they can only be granted access to a single record at once (for now).
*
* - "designated" - The entitlement is for specific records. This would allow the package to access specific records.
*/
export type GrantedEntitlementScope = 'designated';
/**
* The feature categories that entitlements support.
* Generally, features align with resource kinds, but don't have to.
*/
export type EntitlementFeature = 'data' | 'file' | 'event' | 'inst' | 'notification' | 'package' | 'permissions' | 'webhook' | 'ai' | 'search' | 'database';
/**
* Defines an interface that represents an entitlement.
* That is, a feature that can be granted to a package but still requires user approval.
*
* In essence, this allows a package to ask the user for permission for a category of permissions.
*/
export interface Entitlement {
/**
* The feature category that the entitlement is for.
* Generally, features align with resource kinds, but don't have to.
*/
feature: EntitlementFeature;
/**
* The scope of the entitlement.
* This can be used to limit the entitlement to a category of resources.
* For example, the "personal" scope would limit the entitlement to requesting access to the user's personal resources.
*
*
* - "personal" - The entitlement is for personal (user-specific) records. This would allow the package to request access to resources in the user's player record.
* - "owned" - The entitlement is for user (user-owned) records. This would allow the package to request access to resources in a record that the user owns.
* - "studio" - The entitlement is for studio records. This would allow the package to request access to resources in studios in which the user is an admin or member of.
* - "shared" - The entitlement is for shared records. This would allow the package to request access to records that are either owned or granted to the user.
* - "designated" - The entitlement is for specific records. This would allow the package to only request access to specific records.
*/
scope: EntitlementScope;
/**
* The list of records that the entitlement is for.
*/
designatedRecords?: string[];
}
export declare const ENTITLEMENT_FEATURE_VALIDATION: (() => z.ZodEnum<{
search: "search";
inst: "inst";
file: "file";
event: "event";
data: "data";
webhook: "webhook";
notification: "notification";
package: "package";
database: "database";
permissions: "permissions";
ai: "ai";
}>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodEnum<{
search: "search";
inst: "inst";
file: "file";
event: "event";
data: "data";
webhook: "webhook";
notification: "notification";
package: "package";
database: "database";
permissions: "permissions";
ai: "ai";
}>>;
};
export declare const ENTITLEMENT_VALIDATION: (() => z.ZodObject<{
feature: z.ZodEnum<{
search: "search";
inst: "inst";
file: "file";
event: "event";
data: "data";
webhook: "webhook";
notification: "notification";
package: "package";
database: "database";
permissions: "permissions";
ai: "ai";
}>;
scope: z.ZodEnum<{
shared: "shared";
personal: "personal";
owned: "owned";
studio: "studio";
designated: "designated";
}>;
designatedRecords: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
feature: z.ZodEnum<{
search: "search";
inst: "inst";
file: "file";
event: "event";
data: "data";
webhook: "webhook";
notification: "notification";
package: "package";
database: "database";
permissions: "permissions";
ai: "ai";
}>;
scope: z.ZodEnum<{
shared: "shared";
personal: "personal";
owned: "owned";
studio: "studio";
designated: "designated";
}>;
designatedRecords: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions.
*/
export interface Permission {
/**
* The marker that the permission is for.
* If null or undefined, then the permission is for a specific resource instead of a marker.
*/
marker?: string;
/**
* The type of the subject that the permission is for.
*
* "user" - The permission is for a user.
* "inst" - The permission is for an inst.
* "role" - The permission is for a role.
*/
subjectType: SubjectType;
/**
* The ID of the subject.
*/
subjectId: string;
/**
* The ID of the resource that is allowed.
* If null, then all resources are allowed.
*/
resourceId?: string | null;
/**
* The options for the permission.
*/
options: {};
/**
* The unix time in miliseconds that the permission will expire at.
* If null, then the permission does not expire.
*/
expireTimeMs: number | null;
}
export declare const PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes the common options for all permissions that affect data records.
*
* @dochash types/permissions
* @docname DataPermission
*/
export interface DataPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'data';
/**
* The action th at is allowed.
* If null, then all actions are allowed.
*/
action: DataActionKinds | null;
}
export declare const DATA_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"data">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"data">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Options for file permissions.
*
* @dochash types/permissions
* @docname FilePermissionOptions
*/
export interface FilePermissionOptions {
/**
* The maximum allowed file size in bytes.
* Defaults to Infinity.
*/
maxFileSizeInBytes?: number;
/**
* The list of allowed file MIME types.
* If true, then all file types are allowed.
* If an array of strings, then only MIME types that are specified are allowed.
*/
allowedMimeTypes?: true | string[];
}
export declare const FILE_PERMISSION_OPTIONS_VALIDATION: (() => z.ZodObject<{
maxFileSizeInBytes: z.ZodOptional<z.ZodNumber>;
allowedMimeTypes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
maxFileSizeInBytes: z.ZodOptional<z.ZodNumber>;
allowedMimeTypes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes the common options for all permissions that affect file records.
*
* @dochash types/permissions
* @docname FilePermission
*/
export interface FilePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'file';
/**
* The action th at is allowed.
* If null, then all actions are allowed.
*/
action: FileActionKinds | null;
/**
* The options for the permission.
*/
options: FilePermissionOptions;
}
export declare const FILE_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"file">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
options: z.ZodObject<{
maxFileSizeInBytes: z.ZodOptional<z.ZodNumber>;
allowedMimeTypes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
}, z.core.$strip>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"file">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
options: z.ZodObject<{
maxFileSizeInBytes: z.ZodOptional<z.ZodNumber>;
allowedMimeTypes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
}, z.core.$strip>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes the common options for all permissions that affect event records.
*
* @dochash types/permissions
* @docname EventPermission
*/
export interface EventPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'event';
/**
* The action th at is allowed.
* If null, then all actions are allowed.
*/
action: EventActionKinds | null;
}
export declare const EVENT_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"event">;
resourceId: z.ZodNullable<z.ZodString>;
action: z.ZodNullable<z.ZodEnum<{
update: "update";
increment: "increment";
count: "count";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"event">;
resourceId: z.ZodNullable<z.ZodString>;
action: z.ZodNullable<z.ZodEnum<{
update: "update";
increment: "increment";
count: "count";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes the common options for all permissions that affect markers.
*
* @dochash types/permissions
* @docname MarkerPermission
*/
export interface MarkerPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'marker';
/**
* The action th at is allowed.
* If null, then all actions are allowed.
*/
action: MarkerActionKinds | null;
}
export declare const MARKER_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"marker">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
assign: "assign";
unassign: "unassign";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"marker">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
assign: "assign";
unassign: "unassign";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
}>>;
}, z.core.$strip>>;
};
/**
* Options for role permissions.
*
* @dochash types/permissions
* @docname RolePermissionOptions
*/
export interface RolePermissionOptions {
/**
* The maximum lifetime that the role can be granted for in miliseconds.
* If not specified, then the role can be granted for an infinite amount of time.
*/
maxDurationMs?: number;
}
export declare const ROLE_PERMISSION_OPTIONS_VALIDATION: (() => z.ZodObject<{
maxDurationMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
maxDurationMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes the common options for all permissions that affect roles.
*
* @dochash types/permissions
* @docname RolePermission
*/
export interface RolePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'role';
/**
* The ID of the resource that is allowed.
* If null, then all resources are allowed.
*/
resourceId: string | null;
/**
* The action th at is allowed.
* If null, then all actions are allowed.
*/
action: RoleActionKinds | null;
/**
* The options for the permission.
*/
options: RolePermissionOptions;
}
export declare const ROLE_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"role">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
update: "update";
list: "list";
grant: "grant";
revoke: "revoke";
}>>;
options: z.ZodObject<{
maxDurationMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"role">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
update: "update";
list: "list";
grant: "grant";
revoke: "revoke";
}>>;
options: z.ZodObject<{
maxDurationMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect insts.
*
* @dochash types/permissions
* @docname InstPermission
*/
export interface InstPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'inst';
/**
* The ID of the resource that is allowed.
* If null, then all resources are allowed.
*/
resourceId: string | null;
/**
* The action th at is allowed.
* If null, then all actions are allowed.
*/
action: InstActionKinds | null;
}
export declare const INST_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"inst">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
sendAction: "sendAction";
updateData: "updateData";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"inst">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
sendAction: "sendAction";
updateData: "updateData";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect loom resources.
*
* @dochash types/permissions
* @docname LoomPermission
*/
export interface LoomPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'loom';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: LoomActionKinds | null;
}
export declare const LOOM_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"loom">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"loom">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect ai.sloyd resources.
*
* @dochash types/permissions
* @docname SloydPermission
*/
export interface SloydPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'ai.sloyd';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: SloydActionKinds | null;
}
export declare const SLOYD_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.sloyd">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.sloyd">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect ai.hume resources.
*
* @dochash types/permissions
* @docname HumePermission
*/
export interface HumePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'ai.hume';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: HumeActionKinds | null;
}
export declare const HUME_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.hume">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.hume">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect ai.openai.realtime resources.
*
* @dochash types/permissions
* @docname OpenAIRealtimePermission
*/
export interface OpenAIRealtimePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'ai.openai.realtime';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: OpenAIRealtimeActionKinds | null;
}
export declare const OPENAI_REALTIME_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.openai.realtime">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.openai.realtime">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect ai.chat resources.
*
* @dochash types/permissions
* @docname AIChatPermission
*/
export interface AIChatPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'ai.chat';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: AIChatActionKinds | null;
}
export declare const AI_CHAT_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.chat">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.chat">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect ai.image resources.
*
* @dochash types/permissions
* @docname AIImagePermission
*/
export interface AIImagePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'ai.image';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: AIImageActionKinds | null;
}
export declare const AI_IMAGE_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.image">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.image">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect ai.skybox resources.
*
* @dochash types/permissions
* @docname AISkyboxPermission
*/
export interface AISkyboxPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'ai.skybox';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: AISkyboxActionKinds | null;
}
export declare const AI_SKYBOX_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.skybox">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.skybox">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect webhook resources.
*
* @dochash types/permissions
* @docname WebhookPermission
*/
export interface WebhookPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'webhook';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: WebhookActionKinds | null;
}
export declare const WEBHOOK_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"webhook">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"webhook">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect notification resources.
*
* @dochash types/permissions
* @docname NotificationPermission
*/
export interface NotificationPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'notification';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: NotificationActionKinds | null;
}
export declare const NOTIFICATION_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"notification">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"notification">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect package resources.
*
* @dochash types/permissions
* @docname PackagePermission
*/
export interface PackagePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'package';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: PackageActionKinds | null;
}
export declare const PACKAGE_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"package">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"package">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect package.version resources.
*
* @dochash types/permissions
* @docname PackageVersionPermission
*/
export interface PackageVersionPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'package.version';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: PackageVersionActionKinds | null;
}
export declare const PACKAGE_VERSION_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"package.version">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"package.version">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect search resources.
*
* @dochash types/permissions
* @docname SearchPermission
*/
export interface SearchPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'search';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: SearchActionKinds | null;
}
export declare const SEARCH_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"search">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"search">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all permissions that affect search resources.
*
* @dochash types/permissions
* @docname DatabasePermission
*/
export interface DatabasePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'database';
/**
* The action that is allowed.
* If null, then all actions are allowed.
*/
action: DatabaseActionKinds | null;
}
export declare const DATABASE_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"database">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"database">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all purchasableItem permissions.
*
* @dochash types/permissions
* @docname PurchasableItemPermission
*/
export interface PurchasableItemPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'purchasableItem';
/**
* The ID of the resource that is allowed.
* If null, then all resources are allowed.
*/
resourceId: string | null;
action: PurchasableItemActionKinds | null;
}
export declare const PURCHASABLE_ITEM_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"purchasableItem">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"purchasableItem">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all contract permissions.
*
* @dochash types/permissions
* @docname ContractPermission
*/
export interface ContractPermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'contract';
/**
* The ID of the resource that is allowed.
* If null, then all resources are allowed.
*/
resourceId: string | null;
action: ContractActionKinds | null;
}
export declare const CONTRACT_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"contract">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
cancel: "cancel";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"contract">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
cancel: "cancel";
}>>;
}, z.core.$strip>>;
};
/**
* Defines an interface that describes common options for all invoice permissions.
*
* @dochash types/permissions
* @docname InvoicePermission
*/
export interface InvoicePermission extends Permission {
/**
* The kind of the permission.
*/
resourceKind: 'invoice';
/**
* The ID of the resource that is allowed.
* If null, then all resources are allowed.
*/
resourceId: string | null;
action: InvoiceActionKinds | null;
}
export declare const INVOICE_PERMISSION_VALIDATION: (() => z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"invoice">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
approve: "approve";
cancel: "cancel";
}>>;
}, z.core.$strip>) & {
cache: import("es-toolkit").MemoizeCache<any, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"invoice">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
approve: "approve";
cancel: "cancel";
}>>;
}, z.core.$strip>>;
};
export declare const AVAILABLE_PERMISSIONS_VALIDATION: z.ZodDiscriminatedUnion<[z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"data">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"file">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
options: z.ZodObject<{
maxFileSizeInBytes: z.ZodOptional<z.ZodNumber>;
allowedMimeTypes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
}, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"event">;
resourceId: z.ZodNullable<z.ZodString>;
action: z.ZodNullable<z.ZodEnum<{
update: "update";
increment: "increment";
count: "count";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"marker">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
assign: "assign";
unassign: "unassign";
grantPermission: "grantPermission";
revokePermission: "revokePermission";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"role">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
update: "update";
list: "list";
grant: "grant";
revoke: "revoke";
}>>;
options: z.ZodObject<{
maxDurationMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"inst">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
sendAction: "sendAction";
updateData: "updateData";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"loom">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.sloyd">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.hume">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.openai.realtime">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.chat">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.image">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"ai.skybox">;
action: z.ZodNullable<z.ZodEnum<{
create: "create";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"webhook">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"notification">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
send: "send";
subscribe: "subscribe";
unsubscribe: "unsubscribe";
listSubscriptions: "listSubscriptions";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"package">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"package.version">;
action: z.ZodNullable<z.ZodEnum<{
run: "run";
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"search">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"database">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"purchasableItem">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"contract">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
purchase: "purchase";
cancel: "cancel";
}>>;
}, z.core.$strip>, z.ZodObject<{
subjectType: z.ZodEnum<{
inst: "inst";
user: "user";
role: "role";
}>;
subjectId: z.ZodString;
resourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
expireTimeMs: z.ZodNullable<z.ZodNumber>;
marker: z.ZodOptional<z.ZodString>;
resourceKind: z.ZodLiteral<"invoice">;
action: z.ZodNullable<z.ZodEnum<{
read: "read";
create: "create";
update: "update";
delete: "delete";
list: "list";
approve: "approve";
cancel: "cancel";
}>>;
}, z.core.$strip>], "resourceKind">;
export type PermissionOptions = FilePermissionOptions | RolePermissionOptions;
/**
* The name of the admin role.
*/
export declare const ADMIN_ROLE_NAME = "admin";
/**
* The name of the recordOwner role.
*/
export declare const RECORD_OWNER_ROLE_NAME = "recordOwner";
/**
* The name of the "publicRead" resource marker.
* Used by default for data, file, and event records.
*/
export declare const PUBLIC_READ_MARKER = "publicRead";
/**
* The name of the "publicWrite" resource marker.
* Used by default for public insts.
*/
export declare const PUBLIC_WRITE_MARKER = "publicWrite";
/**
* The name of the "private" resource marker.
* Used by default for private insts.
*/
export declare const PRIVATE_MARKER = "private";
/**
* The name of the "account" resource marker.
* Used by default for policy and role records.
*/
export declare const ACCOUNT_MARKER = "account";
//# sourceMappingURL=PolicyPermissions.d.ts.map