import { TagEditOp } from '../aux-format-2' ; export type PartialBot = Partial < Bot > ; export type AuxDomain = 'builder' | 'player' ; export type Workspace = Bot ; /**
 * Defines a symbol that is used to clear changes on a runtime bot.
 */ export const CLEAR_CHANGES_SYMBOL = Symbol ( 'clear_changes' ) ; /**
 * Defines a symbol that is used to set a tag mask on a runtime bot.
 */ export const SET_TAG_MASK_SYMBOL = Symbol ( 'set_tag_mask' ) ; /**
 * Defines a symbol that is used to get a tag mask on a runtime bot.
 */ export const GET_TAG_MASK_SYMBOL = Symbol ( 'get_tag_mask' ) ; /**
 * Defines a symbol that is used to get all the tag masks on a runtime bot.
 */ export const CLEAR_TAG_MASKS_SYMBOL = Symbol ( 'clear_tag_masks' ) ; /**
 * Defines a symbol that is used to edit a tag.
 */ export const EDIT_TAG_SYMBOL = Symbol ( 'edit_tag' ) ; /**
 * Defines a symbol that is used to edit a  tag mask.
 */ export const EDIT_TAG_MASK_SYMBOL = Symbol ( 'edit_tag_mask' ) ; /**
 * Defines a symbol that is used to get tag masks for a bot.
 */ export const GET_TAG_MASKS_SYMBOL = Symbol ( 'get_tag_masks' ) ; /**
 * Defines an interface for a bot in a script/formula.
 *
 * The difference between this and Bot is that the tags
 * are calculated values and raw is the original tag values.
 *
 * i.e. tags will evaluate formulas while raw will return the formula scripts themselves.
 */ export interface RuntimeBot { id : string ; link : string ; space ? : BotSpace ; /**
     * The calculated tag values.
     * This lets you get the calculated values from formulas.
     */ tags : ScriptTags ; /**
     * The raw tag values. This lets you get the raw script text from formulas.
     */ raw : BotTags ; /**
     * The tag masks that have been applied to this bot.
     */ masks : BotTags ; /**
     * The tags on the bot that link to other bots.
     */ links : RuntimeBotLinks ; /**
     * The variables that the bot contains.
     */ vars : RuntimeBotVars ; /**
     * The changes that have been made to the bot.
     */ changes : BotTags ; /**
     * The tag mask changes that have been made to the bot.
     */ maskChanges : BotTagMasks ; /**
     * The signatures that are on the bot.
     */ signatures : BotSignatures ; /**
     * The calculated listener functions.
     * This lets you get the compiled listener functions.
     */ listeners : CompiledBotListeners ; /**
     * A function that can clear all the changes from the runtime bot.
     */ [ CLEAR_CHANGES_SYMBOL ] : ( ) => void ; /**
     * A function that can set a tag mask on the bot.
     */ [ SET_TAG_MASK_SYMBOL ] : ( tag : string , value : any , space ? : string ) => void ; /**
     * A function that can be used to get the tag masks for a bot.
     */ [ GET_TAG_MASKS_SYMBOL ] : ( ) => BotTagMasks ; param space [ CLEAR_TAG_MASKS_SYMBOL ] : ( space ? : string ) => any ; /**
     * A function that can manipulate a tag using the given edit operations.
     */ [ EDIT_TAG_SYMBOL ] : ( tag : string , ops : TagEditOp [ ] ) => any ; /**
     * A function that can manipulate a tag mask using the given edit operations.
     */ [ EDIT_TAG_MASK_SYMBOL ] : ( tag : string , ops : TagEditOp [ ] , space : string ) => any ; /**
     * Gets the listener with the given name.
     */ [ listener ] : CompiledBotListener | any ; } /**
 * Defines an interface that represents a bot link that was parsed from a tag.
 */ export interface ParsedBotLink { /**
     * The tag that the link was parsed from.
     */ tag : string ; /**
     * The bot IDs that the link references.
     */ botIDs : string [ ] ; } /**
 * Defines an interface that represents the bot links a bot can have.
 */ export interface RuntimeBotLinks { [ tag ] : RuntimeBot | RuntimeBot [ ] ; } /**
 * Defines an interface that represents the variables a bot can have.
 */ export interface RuntimeBotVars { [ variable ] : any ; } /**
 * An interface that maps tag names to compiled listener functions.
 */ export interface CompiledBotListeners { [ tag ] : CompiledBotListener ; } /**
 * The type of a compiled bot listener.
 */ export type CompiledBotListener = ( arg ? : any ) => any ; /**
 * Defines an interface for a bot that is precalculated.
 */ export interface PrecalculatedBot extends Bot { /**
     * Flag indicating that the bot is precalculated.
     */ precalculated : true ; /**
     * The precalculated tags.
     */ values : PrecalculatedTags ; } /**
 * Defines an interface for an object that holds a set of tags that have been precalculated.
 */ export interface PrecalculatedTags { [ key ] : any ; } /**
 * Defines an interface for a bot.
 */ export interface Bot { /**
     * The ID of the bot.
     */ id : string ; /**
     * The space the bot lives in.
     */ space ? : BotSpace ; /**
     * The set of tags that the bot contains.
     */ tags : BotTags ; /**
     * The set of signatures that the bot contains.
     */ signatures ? : BotSignatures ; /**
     * The set of tag masks that have been applied to the bot.
     */ masks ? : BotTagMasks ; } /**
 * Defines an interface for a record.
 */ export interface Record { /**
     * The address that the record was published at.
     */ address : string ; /**
     * The space that the record was published to.
     */ space : RecordSpace ; /**
     * The auth ID that published the record.
     */ authID : string ; /**
     * The data that was stored in the record.
     */ data ? : any ; dataURL ? : string ; } /**
 * Defines an interface for an object that represents a reference to a specific record.
 */ export interface RecordReference { /**
     * The ID of the user that published the record.
     */ authID : string ; /**
     * The space that the record lives in.
     */ space : RecordSpace ; /**
     * The address that the record was published to.
     */ address : string ; } /**
 * Defines an interface that indicates a bot was updated.
 */ export interface UpdatedBot { /**
     * The updated bot.
     */ bot : Bot ; /**
     * The tags that were updated on the bot.
     */ tags : string [ ] ; /**
     * The signatures that were updated on the bot.
     */ signatures ? : string [ ] ; } /**
 * The possible bot types.
 *
 * - "shared" means that the bot is a normal bot.
 * - "local" means that the bot is stored in the local storage partition.
 * - "tempLocal" means that the bot is stored in the temporary partition.
 * - "history" means that the bot represents a version of another space.
 * - "admin" means that the bot is shared across all instances.
 * - "tempShared" means that the bot is temporary and shared with other devices.
 * - "remoteTempShared" means that the bot is temporary and shared with this device from a remote device.
 * - "certified" means that the bot is a certificate.
 */ export type BotSpace = 'shared' | 'local' | 'tempLocal' | 'history' | 'admin' | 'tempShared' | 'remoteTempShared' | 'certified' ; /**
 * The possible spaces that records can be stored in.
 *
 * - "tempGlobal" means that the record is temporary and available to anyone.
 * - "tempRestricted" means that the record is temporary and available to a specific user.
 * - "permanentGlobal" means that the record is permanent and available to anyone.
 * - "permanentRestricted" means that the record is permanent and available to a specific user.
 */ export type RecordSpace = 'tempGlobal' | 'tempRestricted' | 'permanentGlobal' | 'permanentRestricted' ; /**
 * The space that records should be published to by default.
 */ export const DEFAULT_RECORD_SPACE = 'tempRestricted' ; /**
 * The possible portal types.
 */ export type PortalType = 'grid' | 'miniGrid' | 'menu' | 'sheet' | 'meet' | string ; export interface ScriptTags extends PrecalculatedTags { toJSON ( ) : any ; } /**
 * Defines an interface for a map of tag+value hashes to tag names.
 *
 * Each key in the object is the hash of an array with the tag name as the first value
 * and the value as the second value using the getHash() function from the crypto package.
 *
 * This means that you can lookup if a tag/value pair has a hash by simply calculating the hash for it and then checking if the corresponding value
 * in the object is set to true.
 */ export interface BotSignatures { [ hash ] : string ; } /**
 * Defines an interface for a map of tag masks to tag names.
 *
 * Tag masks are special tags that can exist in a different space from the bot they are applied to.
 * This makes it possible to have some local-only data applied to a shared bot for example.
 *
 * The actual data structure is similar to the bot tags structure except that tags are additionally
 * split by the space that they originated from. This makes it possible to identify which space a tag came from and also
 * prevents cross-space conflicts.
 */ export interface BotTagMasks { [ space ] : BotTags ; } export interface BotTags { [ 'color' ] ? : unknown ; [ 'draggable' ] ? : unknown ; [ 'draggableMode' ] ? : unknown ; [ 'destroyable' ] ? : unknown ; [ 'editable' ] ? : unknown ; [ 'strokeColor' ] ? : unknown ; [ 'strokeWidth' ] ? : unknown ; [ 'scale' ] ? : number ; [ 'scaleX' ] ? : number ; [ 'scaleY' ] ? : number ; [ 'scaleZ' ] ? : number ; [ 'scaleMode' ] ? : BotScaleMode | null | string ; [ 'lineTo' ] ? : unknown ; [ 'lineWidth' ] ? : number ; [ 'lineStyle' ] ? : unknown ; [ 'lineColor' ] ? : unknown ; [ 'label' ] ? : unknown ; [ 'labelColor' ] ? : unknown ; [ 'labelSize' ] ? : unknown ; [ 'labelSizeMode' ] ? : 'auto' | null ; [ 'labelPosition' ] ? : BotLabelAnchor | null | string ; [ 'labelAlignment' ] ? : BotLabelAlignment | null | string ; [ 'labelFontAddress' ] ? : BotLabelFontAddress ; [ 'listening' ] ? : unknown ; [ 'form' ] ? : BotShape ; [ 'formAnimation' ] ? : string ; [ 'formAddress' ] ? : string ; [ 'orientationMode' ] ? : string ; [ 'anchorPoint' ] ? : string ; [ 'creator' ] ? : string ; [ 'progressBar' ] ? : unknown ; [ 'progressBarColor' ] ? : unknown ; [ 'progressBarBackgroundColor' ] ? : unknown ; [ 'progressBarPosition' ] ? : unknown ; [ 'pointable' ] ? : unknown ; [ 'focusable' ] ? : unknown ; [ 'auxPlayerActive' ] ? : boolean ; [ 'gridPortal' ] ? : string | boolean ; [ 'sheetPortal' ] ? : string | boolean ; [ 'inst' ] ? : string | string [ ] ; [ 'miniGridPortal' ] ? : string ; [ 'menuPortal' ] ? : string ; [ 'leftWristPortal' ] ? : string ; [ 'rightWristPortal' ] ? : string ; [ 'editingBot' ] ? : string ; cursorStartIndex ? : number ; cursorEndIndex ? : number ; [ 'pixelWidth' ] ? : number ; [ 'pixelHeight' ] ? : number ; [ 'auxRunningTasks' ] ? : boolean ; [ 'auxFinishedTasks' ] ? : boolean ; [ 'taskOutput' ] ? : unknown ; [ 'taskError' ] ? : unknown ; [ 'taskTime' ] ? : unknown ; [ 'taskShell' ] ? : string ; [ 'taskBackup' ] ? : boolean ; [ 'taskBackupType' ] ? : BackupType ; [ 'taskBackupUrl' ] ? : string ; [ 'portalColor' ] ? : string ; [ 'portalLocked' ] ? : unknown ; [ 'portalGridScale' ] ? : number ; [ 'portalSurfaceScale' ] ? : number ; [ 'portalCameraRotationX' ] ? : number ; [ 'portalCameraRotationY' ] ? : number ; [ 'portalCameraZoom' ] ? : number ; [ 'portalPannable' ] ? : number | null ; [ `portalPannableMinX` ] ? : number | null ; [ `portalPannableMaxX` ] ? : number | null ; [ `portalPannableMinY` ] ? : number | null ; [ `portalPannableMaxY` ] ? : number | null ; [ 'portalZoomable' ] ? : number | null ; [ `portalZoomableMin` ] ? : number | null ; [ `portalZoomableMax` ] ? : number | null ; [ 'portalRotatable' ] ? : number | null ; [ 'portalShowFocusPoint' ] ? : boolean | null ; [ 'portalDisableCanvasTransparency' ] ? : boolean ; [ 'miniPortalHeight' ] ? : unknown ; [ 'miniPortalResizable' ] ? : boolean ; [ 'wristPortalHeight' ] ? : number ; [ 'wristPortalWidth' ] ? : number ; [ 'stripeCharges' ] ? : boolean ; [ 'stripeSuccessfulCharges' ] ? : boolean ; [ 'stripeFailedCharges' ] ? : boolean ; [ 'stripeCharge' ] ? : string ; [ 'stripeChargeReceiptUrl' ] ? : string ; [ 'stripeChargeReceiptNumber' ] ? : string ; [ 'stripeChargeDescription' ] ? : string ; [ 'stripeOutcomeNetworkStatus' ] ? : string ; [ 'stripeOutcomeReason' ] ? : string ; [ 'stripeOutcomeRiskLevel' ] ? : string ; [ 'stripeOutcomeRiskScore' ] ? : number ; [ 'stripeOutcomeRule' ] ? : string | string [ ] ; [ 'stripeOutcomeSellerMessage' ] ? : string ; [ 'stripeOutcomeType' ] ? : string ; [ 'stripeErrors' ] ? : boolean ; [ 'stripeError' ] ? : string ; [ 'stripeErrorType' ] ? : string ; [ key ] : any ; } /**
 * Defines an interface for the state that an AUX bot can contain.
 */ export interface BotsState { [ id ] : Bot ; } /**
 * Defines an interface for a partial bot state.
 */ export interface PartialBotsState { [ id ] : PartialBot ; } /**
 * Defines an interface for a set of bots that have precalculated formulas.
 */ export interface PrecalculatedBotsState { [ id ] : PrecalculatedBot ; } /**
 * Defines an interface for a partial set of bots that have precalculated formulas.
 */ export interface PartialPrecalculatedBotsState { [ id ] : Partial < PrecalculatedBot > ; } /**
 * Defines an interface for a hex in a workspace.
 */ export interface WorkspaceHex { height : number ; } /**
 * Defines the possible shapes that a bot can appear as.
 */ export type BotShape = 'cube' | 'sphere' | 'sprite' | 'mesh' | 'iframe' | 'frustum' | 'helix' | 'egg' | 'hex' | 'cursor' | 'portal' | 'dimension' | 'nothing' ; /**
 * Defines the possible forms that a menu bot can appear as.
 */ export type MenuBotForm = 'button' | 'input' ; /**
 * Defines the possible hover styles that can be used for a menu bot.
 * Currently only applies to button menu bots.
 */ export type MenuBotHoverStyle = 'auto' | 'hover' | 'none' ; /**
 * Defines the possible hover styles that have been resolved from a bot.
 */ export type MenuBotResolvedHoverStyle = 'hover' | 'none' ; /**
 * Defines the possible subtypes for shapes that a bot can appear as.
 */ export type BotSubShape = 'gltf' | 'src' | 'html' | null ; /**
 * Defines the possible drag modes that a bot can have.
 *
 * "all" means that the bot is able to be dragged freely inside and across contexts.
 * "none" means that the bot is not able to be dragged at all.
 * "pickupOnly" means that the bot should be able to be dragged across contexts but not within a dimension.
 * "moveOnly" means that the bot should be able to be dragged within a dimension but not across contexts.
 */ export type BotDragMode = 'all' | 'none' | 'moveOnly' | 'pickupOnly' ; /**
 * Defines the possible positioning modes that a bot can have.
 *
 * "stack" means the bot is able to stack with other bots.
 * "absolute" means the bot will ignore other bots.
 */ export type BotPositioningMode = 'stack' | 'absolute' ; /**
 * Defines the possible scaling modes that a bot's mesh can have.
 *
 * "fit" means that the mesh is scaled to fit inside its bot unit cube.
 * "absolute" means that the mesh is not scaled to fit inside the bot unit cube.
 */ export type BotScaleMode = 'fit' | 'absolute' ; /**
 * Defines the possible anchor positions for a label.
 */ export type BotLabelAnchor = 'top' | 'front' | 'back' | 'left' | 'right' | 'floating' ; /**
 * Defines the possible label alignment types.
 */ export type BotLabelAlignment = 'center' | 'left' | 'right' ; /**
 * Defines the possible label font addresses.
 */ export type BotLabelFontAddress = 'roboto' | 'noto-sans-kr' | string ; /**
 * Defines the possible label font sizes.
 */ export type BotLabelFontSize = 'auto' | number ; export type BotLabelWordWrap = 'breakWords' | 'breakCharacters' | 'none' ; /**
 * Defines the possible bot orientation modes.
 */ export type BotOrientationMode = 'absolute' | 'billboard' | 'billboardTop' | 'billboardFront' ; /**
 * Defines the possible bot anchor points.
 */ export type BotAnchorPoint = 'top' | 'front' | 'back' | 'left' | 'right' | 'bottom' | 'center' | readonly [ number , number , number ] ; /**
 * Defines the possible meet portal anchor points.
 */ export type MeetPortalAnchorPoint = 'fullscreen' | 'top' | 'topRight' | 'topLeft' | 'bottom' | 'bottomRight' | 'bottomLeft' | 'left' | 'right' | [ number | string ] | [ number | string , number | string ] | [ number | string , number | string , number | string ] | [ number | string , number | string , number | string , number | string ] ; /**
 * Defines the possible backup types.
 */ export type BackupType = 'github' | 'download' ; /**
 * Defines the possible dimension visualize modes.
 *
 * true means that the dimension is visible.
 * false means the dimension is not visible.
 * "surface" means the dimension is visible and renders a worksurface.
 */ export type DimensionVisualizeMode = true | false | 'surface' ; /**
 * The possible LODs for a bot.
 */ export type BotLOD = 'normal' | 'min' | 'max' ; /**
 * The possible camera control modes.
 */ export type PortalCameraControlsMode = 'player' | false ; /**
 * The possible camera types.
 */ export type PortalCameraType = 'orthographic' | 'perspective' ; /**
 * The possible bot cursors.
 */ export type BotCursorType = 'auto' | 'default' | 'none' | 'context-menu' | 'help' | 'pointer' | 'progress' | 'wait' | 'cell' | 'crosshair' | 'text' | 'vertical-text' | 'alias' | 'copy' | 'move' | 'no-drop' | 'not-allowed' | 'grab' | 'grabbing' | 'all-scroll' | 'col-resize' | 'row-resize' | 'n-resize' | 'e-resize' | 's-resize' | 'w-resize' | 'ne-resize' | 'nw-resize' | 'se-resize' | 'sw-resize' | 'ew-resize' | 'ns-resize' | 'nesw-resize' | 'nwse-resize' | 'zoom-in' | 'zoom-out' | BotCursorLink ; export interface BotCursorLink { type : 'link' ; url : string ; x : number ; y : number ; } /**
 * Defines an interface that represents the padding that a bot label should have.
 */ export interface BotLabelPadding { /**
     * The horizontal padding that the label should have.
     */ horizontal : number ; /**
     * The vertical padding that the label should have.
     */ vertical : number ; } /**
 * The default bot cursor.
 */ export const DEFAULT_BOT_CURSOR = 'auto' ; /**
 * The default bot shape.
 */ export const DEFAULT_BOT_SHAPE = 'cube' ; /**
 * The default menu bot form.
 */ export const DEFAULT_MENU_BOT_FORM = 'button' ; /**
 * The default menu bot hover style.
 */ export const DEFAULT_MENU_BOT_HOVER_STYLE = 'auto' ; /**
 * The default bot label anchor.
 */ export const DEFAULT_LABEL_ANCHOR = 'top' ; /**
 * The default bot label alignment.
 */ export const DEFAULT_LABEL_ALIGNMENT = 'center' ; /**
 * The default bot scale mode.
 */ export const DEFAULT_SCALE_MODE = 'fit' ; /**
 * The default bot orientation mode.
 */ export const DEFAULT_ORIENTATION_MODE = 'absolute' ; /**
 * The default bot orientation mode.
 */ export const DEFAULT_ANCHOR_POINT = 'bottom' ; /**
 * The default portal camera controls mode.
 */ export const DEFAULT_PORTAL_CAMERA_CONTROLS_MODE = 'player' ; /**
 * The default bot label font address.
 */ export const DEFAULT_LABEL_FONT_ADDRESS = 'rotobo' ; /**
 * The default bot label font address.
 */ export const DEFAULT_LABEL_FONT_SIZE = 'auto' ; /**
 * The default bot label word wrapping mode.
 */ export const DEFAULT_LABEL_WORD_WRAP_MODE = 'breakCharacters' ; /**
 * Whether canvas transparency is disabled by default.
 */ export const DEFAULT_PORTAL_DISABLE_CANVAS_TRANSPARENCY = false ; /**
 * The default height for workspaces.
 */ export const DEFAULT_WORKSPACE_HEIGHT = 0.1 ; /**
 * The default size for workspaces.
 */ export const DEFAULT_WORKSPACE_SIZE = 1 ; /**
 * The default scale for workspaces.
 */ export const DEFAULT_WORKSPACE_SCALE = 2 ; /**
 * The default scale for mini workspaces.
 */ export const DEFAULT_MINI_WORKSPACE_SCALE = DEFAULT_WORKSPACE_SCALE / 3 ; /**
 * The default grid scale for workspaces.
 */ export const DEFAULT_WORKSPACE_GRID_SCALE = 0.2 ; /**
 * The amount that a hex's height is allowed to change by in a single increment.
 */ export const DEFAULT_WORKSPACE_HEIGHT_INCREMENT = 0.1 ; /**
 * The minimum height that hexes in a workspace can be.
 */ export const DEFAULT_WORKSPACE_MIN_HEIGHT = 0.1 ; /**
 * The default color for workspaces.
 */ export const DEFAULT_WORKSPACE_COLOR = '#999999' ; /**
 * The default color for scene background.
 */ export const DEFAULT_SCENE_BACKGROUND_COLOR = '#263238' ; /**
 * The default color for users in AUX Builder.
 */ export const DEFAULT_BUILDER_USER_COLOR = '#00D000' ; /**
 * The default color for users in AUX Player.
 */ export const DEFAULT_PLAYER_USER_COLOR = '#DDDD00' ; /**
 * The amount of time that a user needs to be inactive for
 * in order to hide their bot.
 */ export const DEFAULT_USER_INACTIVE_TIME = 1000 * 60 ; /**
 * The amount of time that a user needs to be inactive for
 * in order to delete their bot.
 */ export const DEFAULT_USER_DELETION_TIME = 1000 * 60 * 60 ; /**
 * Whether the miniGridPortal is visible by default.
 */ export const DEFAULT_MINI_PORTAL_VISIBLE = false ; /**
 * Whether the map portal is visible by default.
 */ export const DEFAULT_MAP_PORTAL_VISIBLE = false ; /**
 * The default scale for the map portal grid.
 */ export const DEFAULT_MAP_PORTAL_SCALE = 1 ; /**
 * The default grid scale for the map portal.
 */ export const DEFAULT_MAP_PORTAL_GRID_SCALE = 10 ; /**
 * The default basemap that should be used for the map portal.
 * See https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#basemap
 */ export const DEFAULT_MAP_PORTAL_BASEMAP = 'dark-gray' ; /**
 * The default longitude that the map portal should show.
 */ export const DEFAULT_MAP_PORTAL_LONGITUDE = - 84.71112905478944 ; /**
 * The default latitude that the map portal should show.
 */ export const DEFAULT_MAP_PORTAL_LATITUDE = 43.152972972972975 ; /**
 * The default zoom that the map portal should show.
 */ export const DEFAULT_MAP_PORTAL_ZOOM = 7 ; /**
 * Whether portals are pannable by default.
 */ export const DEFAULT_PORTAL_PANNABLE = true ; /**
 * Whether portals are rotatable by default.
 */ export const DEFAULT_PORTAL_ROTATABLE = true ; /**
 * Whether portals are zoomable by default.
 */ export const DEFAULT_PORTAL_ZOOMABLE = true ; /**
 * Whether portals should show their focus point.
 */ export const DEFAULT_PORTAL_SHOW_FOCUS_POINT = false ; /**
 * Whether miniGridPortals are resizable by default.
 */ export const DEFAULT_MINI_PORTAL_RESIZABLE = true ; /**
 * The default height for miniGridPortals.
 */ export const DEFAULT_MINI_PORTAL_HEIGHT = 0.2 ; /**
 * The default height for wrist portals.
 */ export const DEFAULT_WRIST_PORTAL_HEIGHT = 6 ; /**
 * The default width for wrist portals.
 */ export const DEFAULT_WRIST_PORTAL_WIDTH = 6 ; /**
 * The default grid scale for wrist portals.
 */ export const DEFAULT_WRIST_PORTAL_GRID_SCALE = 0.025 ; /**
 * The default anchor point for the meet portal.
 */ export const DEFAULT_MEET_PORTAL_ANCHOR_POINT = 'fullscreen' ; /**
 * The default anchor point for the tag portal.
 */ export const DEFAULT_TAG_PORTAL_ANCHOR_POINT = 'fullscreen' ; /**
 * The default anchor point for custom portals.
 */ export const DEFAULT_CUSTOM_PORTAL_ANCHOR_POINT = 'top' ; /**
 * The default bot LOD.
 */ export const DEFAULT_BOT_LOD = 'normal' ; /**
 * The default minimum LOD threshold.
 */ export const DEFAULT_BOT_LOD_MIN_THRESHOLD = 0.0005 ; /**
 * The default maximum LOD threshold.
 */ export const DEFAULT_BOT_LOD_MAX_THRESHOLD = 0.03 ; /**
 * The ID of the device configuration bot.
 */ export const DEVICE_BOT_ID = 'device' ; /**
 * The ID of the local configuration bot.
 */ export const LOCAL_BOT_ID = 'local' ; /**
 * The ID of the cookie configuration bot.
 */ export const COOKIE_BOT_ID = 'cookie' ; /**
 * THe partition ID for cookie bots.
 */ export const COOKIE_BOT_PARTITION_ID = 'local' ; /**
 * The partition ID for temporary bots.
 */ export const TEMPORARY_BOT_PARTITION_ID = 'tempLocal' ; /**
 * The partition ID for admin bots.
 */ export const ADMIN_PARTITION_ID = 'admin' ; /**
 * The partition ID for temporary shared bots.
 */ export const TEMPORARY_SHARED_PARTITION_ID = 'tempShared' ; /**
 * The partition ID for bots that are automatically added to the instance.
 */ export const BOOTSTRAP_PARTITION_ID = 'bootstrap' ; /**
 * The partition ID for other temp shared bots.
 */ export const REMOTE_TEMPORARY_SHARED_PARTITION_ID = 'remoteTempShared' ; /**
 * The space that tag masks get placed in by default.
 */ export const DEFAULT_TAG_MASK_SPACE = 'tempLocal' ; /**
 * The list of spaces that tag masks should be prioritized by.
 * Listed in reverse order of where they actually end up applied.
 */ export const TAG_MASK_SPACE_PRIORITIES_REVERSE = [ 'admin' , 'shared' , 'remoteTempShared' , 'tempShared' , 'local' , 'tempLocal' , ] as BotSpace [ ] ; /**
 * The list of spaces that tag masks should be prioritized by.
 */ export const TAG_MASK_SPACE_PRIORITIES = [ 'tempLocal' , 'local' , 'tempShared' , 'remoteTempShared' , 'shared' , 'admin' , ] as BotSpace [ ] ; /**
 * The name of the branch that contains admin space.
 */ export const ADMIN_BRANCH_NAME = '$admin' ; /**
 * The name of the tag used to represent the space that the bot is
 * stored in.
 */ export const BOT_SPACE_TAG = 'space' ; /**
 * The name of the event that represents a bot being diffed into another bot.
 */ export const MOD_DROP_ACTION_NAME = 'onModDrop' ; /**
 * The name of the event that represents a bot being created.
 */ export const CREATE_ACTION_NAME = 'onCreate' ; /**
 * The name of the event that represents any bot being created.
 */ export const CREATE_ANY_ACTION_NAME = 'onAnyCreate' ; /**
 * The name of the event that represents a bot being destroyed.
 */ export const DESTROY_ACTION_NAME = 'onDestroy' ; /**
 * The name of the event that represents a bot being clicked.
 */ export const CLICK_ACTION_NAME = 'onClick' ; /**
 * The name of the event that represents any bot being clicked.
 */ export const ANY_CLICK_ACTION_NAME = 'onAnyBotClicked' ; /**
 * The name of the event that represents a bot entering over another bot.
 */ export const DROP_ENTER_ACTION_NAME = 'onDropEnter' ; /**
 * The name of the event that represents a bot exiting from over another bot.
 */ export const DROP_EXIT_ACTION_NAME = 'onDropExit' ; /**
 * The name of the event that represents a bot entering over another bot.
 */ export const ANY_DROP_ENTER_ACTION_NAME = 'onAnyBotDropEnter' ; /**
 * The name of the event that represents a bot exiting from over another bot.
 */ export const ANY_DROP_EXIT_ACTION_NAME = 'onAnyBotDropExit' ; /**
 * The name of the event that represents a bot being dropped onto a dimension.
 */ export const DROP_ACTION_NAME = 'onDrop' ; /**
 * The name of the event that represents any bot being dropped onto a dimension.
 */ export const DROP_ANY_ACTION_NAME = 'onAnyBotDrop' ; /**
 * The name of the event that represents a bot starting to be dragged.
 */ export const DRAG_ACTION_NAME = 'onDrag' ; /**
 * The name of the event that represents any bot starting to be dragged.
 */ export const DRAG_ANY_ACTION_NAME = 'onAnyBotDrag' ; /**
 * The name of the event that represents a bot being dragged.
 */ export const DRAGGING_ACTION_NAME = 'onDragging' ; /**
 * The name of the event that represents any bot being dragged.
 */ export const DRAGGING_ANY_ACTION_NAME = 'onAnyBotDragging' ; /**
 * The name of the event that represents a mod entering over a bot.
 */ export const MOD_DROP_ENTER_ACTION_NAME = 'onModDropEnter' ; /**
 * The name of the event that represents a mod exiting from over a bot.
 */ export const MOD_DROP_EXIT_ACTION_NAME = 'onModDropExit' ; /**
 * The name of the event that is triggered when a pointer starts hovering a bot.
 */ export const ON_POINTER_ENTER = 'onPointerEnter' ; /**
 * The name of the event that is triggered when a pointer stops hovering a bot.
 */ export const ON_POINTER_EXIT = 'onPointerExit' ; /**
 * The name of the event that is triggered when a pointer starts hovering any bot.
 */ export const ON_ANY_POINTER_ENTER = 'onAnyBotPointerEnter' ; /**
 * The name of the event that is triggered when a pointer stops hovering any bot.
 */ export const ON_ANY_POINTER_EXIT = 'onAnyBotPointerExit' ; /**
 * The name of the event that is triggered when a pointer starts clicking a bot.
 */ export const ON_POINTER_DOWN = 'onPointerDown' ; /**
 * The name of the event that is triggered when a pointer stops clicking a bot.
 */ export const ON_POINTER_UP = 'onPointerUp' ; /**
 * The name of the event that is triggered when a pointer starts hovering any bot.
 */ export const ON_ANY_POINTER_DOWN = 'onAnyBotPointerDown' ; /**
 * The name of the event that is triggered when a pointer stops hovering any bot.
 */ export const ON_ANY_POINTER_UP = 'onAnyBotPointerUp' ; /**
 * The name of the event that is triggered when a QR Code is scanned.
 */ export const ON_QR_CODE_SCANNED_ACTION_NAME = 'onQRCodeScanned' ; /**
 * The name of the event that is triggered when the QR Code scanner is closed.
 */ export const ON_QR_CODE_SCANNER_CLOSED_ACTION_NAME = 'onQRCodeScannerClosed' ; /**
 * The name of the event that is triggered when the QR Code scanner is opened.
 */ export const ON_QR_CODE_SCANNER_OPENED_ACTION_NAME = 'onQRCodeScannerOpened' ; /**
 * The name of the event that is triggered when the Barcode scanner is closed.
 */ export const ON_BARCODE_SCANNER_CLOSED_ACTION_NAME = 'onBarcodeScannerClosed' ; /**
 * The name of the event that is triggered when the Barcode scanner is opened.
 */ export const ON_BARCODE_SCANNER_OPENED_ACTION_NAME = 'onBarcodeScannerOpened' ; /**
 * The name of the event that is triggered when a Barcode is scanned.
 */ export const ON_BARCODE_SCANNED_ACTION_NAME = 'onBarcodeScanned' ; /**
 * The name of the event that is triggered when the checkout process is completed.
 */ export const ON_CHECKOUT_ACTION_NAME = 'onCheckout' ; /**
 * The name of the event that is triggered when payment has been approved for the checkout.
 */ export const ON_PAYMENT_SUCCESSFUL_ACTION_NAME = 'onPaymentSuccessful' ; /**
 * The name of the event that is triggered when payment has been rejected for the checkout.
 */ export const ON_PAYMENT_FAILED_ACTION_NAME = 'onPaymentFailed' ; /**
 * The name of the event that is triggered when webhooks have been received.
 */ export const ON_WEBHOOK_ACTION_NAME = 'onWebhook' ; /**
 * The name of the event that is triggered on every bot when a shout has been executed.
 */ export const ON_ANY_SHOUT_ACTION_NAME = 'onAnyListen' ; /**
 * The name of the event that is triggered when a shout has been executed.
 */ export const ON_SHOUT_ACTION_NAME = 'onListen' ; /**
 * The name of the event that is triggered before an action is executed.
 */ export const ON_ACTION_ACTION_NAME = 'onAnyAction' ; /**
 * The name of the event that is triggered when a remote whisper is executed.
 */ export const ON_REMOTE_WHISPER_ACTION_NAME = 'onRemoteWhisper' ; /**
 * The name of the event that is triggered when a remote whisper is executed.
 */ export const ON_REMOTE_DATA_ACTION_NAME = 'onRemoteData' ; /**
 * The name of the event that is triggered when a channel becomes synced.
 */ export const ON_SERVER_STREAMING_ACTION_NAME = 'onServerStreaming' ; /**
 * The name of the event that is triggered when a channel has become unsynced.
 */ export const ON_SERVER_STREAM_LOST_ACTION_NAME = 'onServerStreamLost' ; /**
 * The name of the event that is triggered when a inst becomes synced.
 */ export const ON_INST_STREAMING_ACTION_NAME = 'onInstStreaming' ; /**
 * The name of the event that is triggered when a inst has become unsynced.
 */ export const ON_INST_STREAM_LOST_ACTION_NAME = 'onInstStreamLost' ; /**
 * The name of the event that is triggered when a channel is loaded.
 */ export const ON_SERVER_SUBSCRIBED_ACTION_NAME = 'onServerSubscribed' ; /**
 * The name of the event that is triggered when a channel is loaded.
 */ export const ON_SERVER_JOINED_ACTION_NAME = 'onServerJoined' ; /**
 * The name of the event that is triggered when a inst is loaded.
 */ export const ON_INST_JOINED_ACTION_NAME = 'onInstJoined' ; /**
 * The name of the event that is triggered when a channel is unloaded.
 */ export const ON_SERVER_UNSUBSCRIBED_ACTION_NAME = 'onServerUnsubscribed' ; /**
 * The name of the event that is triggered when a channel is unloaded.
 */ export const ON_SERVER_LEAVE_ACTION_NAME = 'onServerLeave' ; /**
 * The name of the event that is triggered when a channel is unloaded.
 */ export const ON_INST_LEAVE_ACTION_NAME = 'onInstLeave' ; /**
 * The name of the event that is triggered when portal tag is changed on the config bot.
 */ export const ON_PLAYER_PORTAL_CHANGED_ACTION_NAME = 'onPlayerPortalChanged' ; /**
 * The name of the event that is triggered when portal tag is changed on the config bot.
 */ export const ON_PORTAL_CHANGED_ACTION_NAME = 'onPortalChanged' ; /**
 * The name of the event that is triggered when a script is executed.
 */ export const ON_RUN_ACTION_NAME = 'onRun' ; /**
 * The name of the event that is triggered when the text in the chat bar is updated.
 */ export const ON_CHAT_TYPING_ACTION_NAME = 'onChatTyping' ; /**
 * The name of the event that is triggered when the text in the chat bar is submitted.
 */ export const ON_CHAT_ACTION_NAME = 'onChat' ; /**
 * The name of the event that is triggered when the text in a menu bot input is submitted.
 */ export const ON_SUBMIT_ACTION_NAME = 'onSubmit' ; /**
 * The name of the event that is triggered when the text in a menu bot input is updated.
 */ export const ON_INPUT_TYPING_ACTION_NAME = 'onInputTyping' ; /**
 * The name of the event that is triggered when text is pasted into aux.
 */ export const ON_PASTE_ACTION_NAME = 'onPaste' ; /**
 * The name of the event that is triggered when the maximum LOD is entered.
 */ export const ON_MAX_LOD_ENTER_ACTION_NAME = 'onMaxLODEnter' ; /**
 * The name of the event that is triggered when the minimum LOD is entered.
 */ export const ON_MIN_LOD_ENTER_ACTION_NAME = 'onMinLODEnter' ; /**
 * The name of the event that is triggered when the maximum LOD is exited.
 */ export const ON_MAX_LOD_EXIT_ACTION_NAME = 'onMaxLODExit' ; /**
 * The name of the event that is triggered when the minimum LOD is exited.
 */ export const ON_MIN_LOD_EXIT_ACTION_NAME = 'onMinLODExit' ; /**
 * The name of the event that is triggered when the maximum LOD is entered.
 */ export const ON_ANY_MAX_LOD_ENTER_ACTION_NAME = 'onAnyMaxLODEnter' ; /**
 * The name of the event that is triggered when the minimum LOD is entered.
 */ export const ON_ANY_MIN_LOD_ENTER_ACTION_NAME = 'onAnyMinLODEnter' ; /**
 * The name of the event that is triggered when the maximum LOD is exited.
 */ export const ON_ANY_MAX_LOD_EXIT_ACTION_NAME = 'onAnyMaxLODExit' ; /**
 * The name of the event that is triggered when the minimum LOD is exited.
 */ export const ON_ANY_MIN_LOD_EXIT_ACTION_NAME = 'onAnyMinLODExit' ; /**
 * The name of the event that is triggered when the grid is clicked.
 */ export const ON_GRID_CLICK_ACTION_NAME = 'onGridClick' ; /**
 * The name of the event that is triggered when the grid starts getting pressed.
 */ export const ON_GRID_UP_ACTION_NAME = 'onGridUp' ; /**
 * The name of the event that is triggered when the grid stops getting pressed.
 */ export const ON_GRID_DOWN_ACTION_NAME = 'onGridDown' ; /**
 * The name of the event that is triggered when a file is uploaded.
 */ export const ON_FILE_UPLOAD_ACTION_NAME = 'onFileUpload' ; /**
 * The name of the event that is triggerd when a bot gains camera focus.
 */ export const ON_FOCUS_ENTER_ACTION_NAME = 'onFocusEnter' ; /**
 * The name of the event that is triggerd when a bot loses camera focus.
 */ export const ON_FOCUS_EXIT_ACTION_NAME = 'onFocusExit' ; /**
 * The name of the event that is triggerd when a bot gains camera focus.
 */ export const ON_ANY_FOCUS_ENTER_ACTION_NAME = 'onAnyFocusEnter' ; /**
 * The name of the event that is triggerd when a bot loses camera focus.
 */ export const ON_ANY_FOCUS_EXIT_ACTION_NAME = 'onAnyFocusExit' ; /**
 * The name of the event that is triggered when a remote player joins the game.
 */ export const ON_REMOTE_PLAYER_SUBSCRIBED_ACTION_NAME = 'onRemotePlayerSubscribed' ; /**
 * The name of the event that is triggered when a remote player joins the game.
 */ export const ON_REMOTE_JOINED_ACTION_NAME = 'onRemoteJoined' ; /**
 * The name of the event that is triggered when a remote player leaves the game.
 */ export const ON_REMOTE_PLAYER_UNSUBSCRIBED_ACTION_NAME = 'onRemotePlayerUnsubscribed' ; /**
 * The name of the event that is triggered when a remote player leaves the game.
 */ export const ON_REMOTE_LEAVE_ACTION_NAME = 'onRemoteLeave' ; /**
 * The name of the event that is triggered when a bot is added to the local simulation.
 */ export const ON_BOT_ADDED_ACTION_NAME = 'onBotAdded' ; /**
 * The name of the event that is triggered when any bot is added to the local simulation.
 */ export const ON_ANY_BOTS_ADDED_ACTION_NAME = 'onAnyBotsAdded' ; /**
 * The name of the event that is triggered when any bot is removed from the local simulation.
 */ export const ON_ANY_BOTS_REMOVED_ACTION_NAME = 'onAnyBotsRemoved' ; /**
 * The name of the event that is triggered when a bot is changed.
 */ export const ON_BOT_CHANGED_ACTION_NAME = 'onBotChanged' ; /**
 * The name of the event that is triggered when any bot is changed in the local simulation.
 */ export const ON_ANY_BOTS_CHANGED_ACTION_NAME = 'onAnyBotsChanged' ; /**
 * The name of the event that is triggered when a tag is clicked in the sheet.
 */ export const ON_SHEET_TAG_CLICK = 'onSheetTagClick' ; /**
 * The name of the event that is triggered when a Bot's ID is clicked in the sheet.
 */ export const ON_SHEET_BOT_ID_CLICK = 'onSheetBotIDClick' ; /**
 * The name of the event that is triggered when a Bot is clicked in the sheet.
 */ export const ON_SHEET_BOT_CLICK = 'onSheetBotClick' ; /**
 * The name of the event that is triggered when a listen tag encounters an unhandled error.
 */ export const ON_ERROR = 'onError' ; /**
 * The name of the event that is triggered when a portal is being configured.
 */ export const ON_APP_SETUP_ACTION_NAME = 'onAppSetup' ; /**
 * The tag used to set the space that the tag portal operates in.
 */ export const TAG_PORTAL_SPACE = 'tagPortalSpace' ; /**
 * The name of the event that is triggered when an audio sample is resolved.
 */ export const ON_AUDIO_SAMPLE = 'onAudioChunk' ; /**
 * The name of the event that is triggered when audio recording is started.
 */ export const ON_BEGIN_AUDIO_RECORDING = 'onBeginAudioRecording' ; /**
 * The name of the event that is triggered when audio recording is stopped.
 */ export const ON_END_AUDIO_RECORDING = 'onEndAudioRecording' ; /**
 * The current bot format version for AUX Bots.
 * This number increments whenever there are any changes between AUX versions.
 * As a result, it will allow us to make breaking changes but still upgrade people's bots
 * in the future.
 */ export const AUX_BOT_VERSION = 1 ; /**
 * The name of the miniGridPortal.
 */ export const MINI_PORTAL = 'miniGridPortal' ; /**
 * The name of the map portal.
 */ export const MAP_PORTAL = 'mapPortal' ; /**
 * The name of the mini map portal.
 */ export const MINI_MAP_PORTAL = 'miniMapPortal' ; /**
 * The name of the meet portal.
 */ export const MEET_PORTAL = 'meetPortal' ; /**
 * The name of the tag portal.
 */ export const TAG_PORTAL = 'tagPortal' ; /**
 * The name of the data portal.
 */ export const DATA_PORTAL = 'dataPortal' ; /**
 * The name of the sheet portal.
 */ export const SHEET_PORTAL = 'sheetPortal' ; /**
 * The name of the IDE portal.
 */ export const IDE_PORTAL = 'idePortal' ; /**
 * The name of the system portal.
 */ export const SYSTEM_PORTAL = 'systemPortal' ; /**
 * The name of the system tag.
 */ export const SYSTEM_TAG = 'system' ; /**
 * The name of the tag used to keep track of the selected bot in the system portal..
 */ export const SYSTEM_PORTAL_BOT = 'systemPortalBot' ; /**
 * The name of the tag that is selected in the system portal.
 */ export const SYSTEM_PORTAL_TAG = 'systemPortalTag' ; /**
 * The space of the tag that is selected in the system portal.
 */ export const SYSTEM_PORTAL_TAG_SPACE = 'systemPortalTagSpace' ; /**
 * The name of the tag that is used to indicate which bot the player is currently editing.
 */ export const EDITING_BOT = 'editingBot' ; /**
 * The name of the tag that is used to indiciate which tag the player is currently editing.
 */ export const EDITING_TAG = 'editingTag' ; /**
 * The name of the tag that is used to indiciate which space the tag the player is currently editing is in.
 */ export const EDITING_TAG_SPACE = 'editingTagSpace' ; /**
 * The name of the IMU portal.
 */ export const IMU_PORTAL = 'imuPortal' ; /**
 * The prefix for DNA Tags.
 */ export const DNA_TAG_PREFIX = '🧬' ; /**
 * The default script prefixes for custom portals.
 */ export const DEFAULT_CUSTOM_PORTAL_SCRIPT_PREFIXES = [ '📖' ] ; /**
 * The list of all portal tags.
 */ export const KNOWN_PORTALS = [ 'gridPortal' , SHEET_PORTAL , IDE_PORTAL , IMU_PORTAL , SYSTEM_PORTAL , MINI_PORTAL , 'menuPortal' , 'leftWristPortal' , 'rightWristPortal' , MEET_PORTAL , TAG_PORTAL , MAP_PORTAL , MINI_MAP_PORTAL , ] ; /**
 * The list of portal tags that should always be represented in the query string.
 */ export const QUERY_PORTALS = [ 'gridPortal' , SHEET_PORTAL , IDE_PORTAL , MEET_PORTAL , TAG_PORTAL , TAG_PORTAL_SPACE , MAP_PORTAL , SYSTEM_PORTAL , ] ; /**
 * The list of portal tags that should cause a new browser history entry to be added
 * when it is updated.
 */ export const QUERY_FULL_HISTORY_TAGS = new Set ( [ 'gridPortal' , SHEET_PORTAL , IDE_PORTAL , MEET_PORTAL , TAG_PORTAL , TAG_PORTAL_SPACE , MAP_PORTAL , ] ) ; /**
 * The list of portal tags that should cause a new browser history entry to be added
 * only when the tag itself is added or removed from the query.
 */ export const QUERY_PARTIAL_HISTORY_TAGS = new Set ( [ SYSTEM_PORTAL ] ) ; export const KNOWN_TAGS = [ 'playerActive' , 'gridPortal' , SHEET_PORTAL , IDE_PORTAL , SYSTEM_PORTAL , SYSTEM_PORTAL_BOT , SYSTEM_PORTAL_TAG , SYSTEM_PORTAL_TAG_SPACE , SYSTEM_TAG , 'inst' , MINI_PORTAL , 'menuPortal' , MAP_PORTAL , MINI_MAP_PORTAL , 'leftWristPortal' , 'rightWristPortal' , MEET_PORTAL , DATA_PORTAL , TAG_PORTAL , TAG_PORTAL_SPACE , IMU_PORTAL , 'imuSupported' , 'deviceRotationX' , 'deviceRotationY' , 'deviceRotationZ' , 'deviceRotationW' , 'cameraPositionX' , 'cameraPositionY' , 'cameraPositionZ' , 'cameraPositionOffsetX' , 'cameraPositionOffsetY' , 'cameraPositionOffsetZ' , 'cameraRotationX' , 'cameraRotationY' , 'cameraRotationZ' , 'cameraRotationOffsetX' , 'cameraRotationOffsetY' , 'cameraRotationOffsetZ' , 'cameraRotationOffsetW' , 'cameraFocusX' , 'cameraFocusY' , 'cameraFocusZ' , 'cameraZoom' , 'cameraZoomOffset' , 'pixelWidth' , 'pixelHeight' , 'pixelRatio' , 'defaultPixelRatio' , 'pageTitle' , 'pointerPixelX' , 'pointerPixelY' , 'mousePointerPositionX' , 'mousePointerPositionY' , 'mousePointerPositionZ' , 'rightPointerPositionX' , 'rightPointerPositionY' , 'rightPointerPositionZ' , 'leftPointerPositionX' , 'leftPointerPositionY' , 'leftPointerPositionZ' , 'mousePointerRotationX' , 'mousePointerRotationY' , 'mousePointerRotationZ' , 'rightPointerRotationX' , 'rightPointerRotationY' , 'rightPointerRotationZ' , 'leftPointerRotationX' , 'leftPointerRotationY' , 'leftPointerRotationZ' , 'mousePointerPortal' , 'rightPointerPortal' , 'leftPointerPortal' , 'mousePointer_left' , 'mousePointer_right' , 'mousePointer_middle' , 'leftPointer_primary' , 'leftPointer_squeeze' , 'rightPointer_primary' , 'rightPointer_squeeze' , 'forceSignedScripts' , EDITING_BOT , EDITING_TAG , EDITING_TAG_SPACE , 'cursorStartIndex' , 'cursorEndIndex' , 'portalColor' , 'portalCursor' , 'portalCursorHotspotX' , 'portalCursorHotspotY' , 'portalBackgroundAddress' , 'portalLocked' , 'portalPannable' , `portalPannableMinX` , `portalPannableMaxX` , `portalPannableMinY` , `portalPannableMaxY` , 'portalZoomable' , `portalZoomableMin` , `portalZoomableMax` , 'portalRotatable' , 'portalGridScale' , 'portalSurfaceScale' , `portalCameraZoom` , `portalCameraRotationX` , `portalCameraRotationY` , 'portalCameraControls' , 'portalShowFocusPoint' , 'portalDisableCanvasTransparency' , 'portalCameraType' , 'miniPortalHeight' , 'miniPortalWidth' , 'miniPortalResizable' , 'wristPortalHeight' , 'wristPortalWidth' , 'meetPortalAnchorPoint' , 'meetPortalVisible' , 'meetPortalStyle' , 'mapPortalBasemap' , 'tagPortalAnchorPoint' , 'tagPortalStyle' , 'tagPortalShowButton' , 'tagPortalButtonIcon' , 'tagPortalButtonHint' , 'sheetPortalShowButton' , 'sheetPortalButtonIcon' , 'sheetPortalButtonHint' , 'sheetPortalAllowedTags' , 'sheetPortalAddedTags' , 'portalShowButton' , 'portalButtonIcon' , 'portalButtonHint' , 'menuPortalStyle' , 'color' , 'creator' , 'cursor' , 'cursorHotspotX' , 'cursorHotspotY' , 'draggable' , 'destroyable' , 'editable' , 'strokeColor' , 'strokeWidth' , 'lineTo' , 'lineStyle' , 'lineWidth' , 'lineColor' , 'label' , 'labelColor' , 'labelFontSize' , 'labelSize' , 'labelSizeMode' , 'labelOpacity' , 'labelPadding' , 'labelPaddingX' , 'labelPaddingY' , 'labelPosition' , 'labelAlignment' , 'labelWordWrapMode' , 'labelFontAddress' , 'listening' , 'scale' , 'scaleX' , 'scaleY' , 'scaleZ' , 'scaleMode' , 'formAddress' , 'formSubtype' , 'form' , 'formAnimation' , 'formAnimationAddress' , 'orientationMode' , 'anchorPoint' , 'gltfVersion' , 'progressBar' , 'progressBarColor' , 'progressBarBackgroundColor' , 'progressBarPosition' , 'maxLODThreshold' , 'minLODThreshold' , 'pointable' , 'focusable' , 'transformer' , 'menuItemStyle' , 'menuItemLabelStyle' , 'menuItemHoverMode' , 'menuItemText' , 'taskOutput' , 'taskError' , 'taskTime' , 'taskShell' , 'taskBackup' , 'taskBackupType' , 'taskBackupUrl' , 'error' , 'errorName' , 'errorMessage' , 'errorStack' , 'errorBot' , 'errorTag' , 'avatarAddress' , 'name' , CLICK_ACTION_NAME , 'onAnyBotClicked' , MOD_DROP_ENTER_ACTION_NAME , MOD_DROP_EXIT_ACTION_NAME , MOD_DROP_ACTION_NAME , 'onSaveInput' , 'onCloseInput' , CREATE_ACTION_NAME , CREATE_ANY_ACTION_NAME , DESTROY_ACTION_NAME , DROP_ENTER_ACTION_NAME , DROP_EXIT_ACTION_NAME , ANY_DROP_ENTER_ACTION_NAME , ANY_DROP_EXIT_ACTION_NAME , DROP_ACTION_NAME , DROP_ANY_ACTION_NAME , DRAG_ACTION_NAME , DRAG_ANY_ACTION_NAME , DRAGGING_ACTION_NAME , DRAGGING_ANY_ACTION_NAME , 'onTapCode' , 'onQRCodeScanned' , 'onQRCodeScannerClosed' , 'onQRCodeScannerOpened' , 'onBarcodeScanned' , 'onBarcodeScannerClosed' , 'onBarcodeScannerOpened' , ON_POINTER_ENTER , ON_POINTER_EXIT , ON_ANY_POINTER_ENTER , ON_ANY_POINTER_EXIT , ON_POINTER_DOWN , ON_POINTER_UP , ON_ANY_POINTER_DOWN , ON_ANY_POINTER_UP , ON_INST_STREAMING_ACTION_NAME , ON_INST_STREAM_LOST_ACTION_NAME , ON_INST_JOINED_ACTION_NAME , ON_INST_LEAVE_ACTION_NAME , ON_PORTAL_CHANGED_ACTION_NAME , ON_APP_SETUP_ACTION_NAME , 'onKeyDown' , 'onKeyUp' , ON_GRID_CLICK_ACTION_NAME , ON_GRID_UP_ACTION_NAME , ON_GRID_DOWN_ACTION_NAME , 'onCheckout' , 'onPaymentSuccessful' , 'onPaymentFailed' , 'onWebhook' , 'onAnyListen' , 'onListen' , ON_REMOTE_DATA_ACTION_NAME , ON_ACTION_ACTION_NAME , ON_RUN_ACTION_NAME , ON_CHAT_TYPING_ACTION_NAME , ON_CHAT_ACTION_NAME , ON_SUBMIT_ACTION_NAME , ON_INPUT_TYPING_ACTION_NAME , ON_PASTE_ACTION_NAME , ON_MAX_LOD_ENTER_ACTION_NAME , ON_MIN_LOD_ENTER_ACTION_NAME , ON_MAX_LOD_EXIT_ACTION_NAME , ON_MIN_LOD_EXIT_ACTION_NAME , ON_ANY_MAX_LOD_ENTER_ACTION_NAME , ON_ANY_MIN_LOD_ENTER_ACTION_NAME , ON_ANY_MAX_LOD_EXIT_ACTION_NAME , ON_ANY_MIN_LOD_EXIT_ACTION_NAME , ON_FILE_UPLOAD_ACTION_NAME , ON_FOCUS_ENTER_ACTION_NAME , ON_FOCUS_EXIT_ACTION_NAME , ON_ANY_FOCUS_ENTER_ACTION_NAME , ON_ANY_FOCUS_EXIT_ACTION_NAME , ON_REMOTE_JOINED_ACTION_NAME , ON_REMOTE_LEAVE_ACTION_NAME , ON_BOT_ADDED_ACTION_NAME , ON_ANY_BOTS_ADDED_ACTION_NAME , ON_ANY_BOTS_REMOVED_ACTION_NAME , ON_BOT_CHANGED_ACTION_NAME , ON_ANY_BOTS_CHANGED_ACTION_NAME , ON_SHEET_TAG_CLICK , ON_SHEET_BOT_ID_CLICK , ON_SHEET_BOT_CLICK , ON_BEGIN_AUDIO_RECORDING , ON_AUDIO_SAMPLE , ON_END_AUDIO_RECORDING , ] ; export function onClickArg ( face , dimension ) { return { face , dimension , } ; } export function onAnyClickArg ( face , dimension , bot ) { return { ... onClickArg ( face , dimension ) , bot , } ; } export function onDragArg ( bot , from , face ) { return { face , bot , from , } ; } export function onDraggingArg ( bot , to , from ) { return { bot , to , from , } ; } export function onModDropArg ( mod , dimension ) { return { mod , dimension , } ; } export function onDropArg ( dragBot , to , from ) { return { dragBot , bot : dragBot , to , from , } ; } export function onServerStreamingArg ( server ) { return { server , inst : server , } ; } export function onServerStreamLostArg ( server ) { return { server , inst : server , } ; } export function onServerSubscribedArg ( server ) { return { server , inst : server , } ; } export function onServerUnsubscribedArg ( server ) { return { server , inst : server , } ; } export function onChatTypingArg ( message ) { return { message , } ; } export function onChatArg ( message ) { return { message , } ; } export function onPasteArg ( text ) { return { text , } ; } export function onLODArg ( bot , dimension ) { return { bot , dimension , } ; } export function onPointerEnterExitArg ( bot , dimension ) { return { bot , dimension , } ; } export function onPointerUpDownArg ( bot , dimension ) { return { bot , dimension , } ; } export function onSubmitArg ( text ) { return { text , } ; } export interface BotDropDestination { x : number ; y : number ; dimension : string ; } export interface BotDropToDestination extends BotDropDestination { bot : Bot ; }