import type { Identifier, ObjectPrettify, StringIsLiteral } from "typeforge"; export type UserRestrictionsData = { path: (PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`); user: `users/${UserId}`; gameJoinRestriction: { active: boolean; startTime: string; duration?: `${number}s`; privateReason: string; displayReason: string; excludeAltAccounts: boolean; inherited: boolean; }; }; export type UpdateUserRestrictionsData = { gameJoinRestriction: { active: boolean; duration?: `${number}s`; privateReason: string; displayReason: string; excludeAltAccounts: boolean; }; }; export type UpdateRestrictionsForUserData = { path: (PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`); user: `users/${UserId}`; gameJoinRestriction: { [Key in keyof Omit<{ active: _Active; startTime: string; duration: _Duration; privateReason: _GameJoinRestriction["privateReason"]; displayReason: _GameJoinRestriction["displayReason"]; excludeAltAccounts: _GameJoinRestriction["excludeAltAccounts"]; inherited: boolean; }, StringIsLiteral<_Duration> extends true ? "" : "duration">]: Omit<{ active: _Active; startTime: string; duration: _Duration; privateReason: _GameJoinRestriction["privateReason"]; displayReason: _GameJoinRestriction["displayReason"]; excludeAltAccounts: _GameJoinRestriction["excludeAltAccounts"]; inherited: boolean; }, StringIsLiteral<_Duration> extends true ? "" : "duration">[Key]; }; }; type RestrictionLogEntry = ObjectPrettify<{ user: `users/${UserId}`; place: `${PlaceId}`; moderator: { robloxUser: `${Identifier}`; }; createTime: TemporalType; active: boolean; startTime: TemporalType; duration: `${number}s`; privateReason: string; displayReason: string; excludeAltAccounts: boolean; }>; export type RawListRestrictionLogsData = { logs: RestrictionLogEntry[]; nextPageToken: string; }; export type PrettifiedListRestrictionLogsData = (RestrictionLogEntry[]); export {};