/** Built-in viewer text. Override only the keys your application needs. */ declare const DEFAULT_MODEL_VIEWER_LABELS: { readonly verifyingLicense: "Verifying License"; readonly checkingYourLicenseKey: "Checking your license key..."; readonly invalidLicense: "Invalid License"; readonly licenseHasBeenRevokedOrHasExpired: "License has been revoked or has expired"; readonly failedToLoadPleaseContactTheSiteAdministrator: "Failed to load. Please contact the site administrator."; readonly contextRestoringTitle: "Reloading viewer…"; readonly contextLostTitle: "3D view interrupted"; readonly contextRestoringMessage: "Rebuilding the 3D view. Please wait…"; readonly contextLostMessage: "The graphics connection was interrupted. The viewer will rebuild when it returns, or you can reload it now."; readonly reloadViewer: "Reload viewer"; readonly texturePositioningHint: "Drag to move · Scroll to zoom · Click elsewhere to finish"; readonly texturePositioningStartHint: "Double-click to move or zoom"; readonly dismiss: "Dismiss"; readonly missingUVsAreShownInMagenta: "Missing UVs are shown in magenta."; readonly viewThisModelInARWithAppleQuickLook: "View this model in AR with Apple Quick Look"; readonly viewInAR: "View in AR"; readonly openThisExperienceOnAPhoneForAR: "Open this experience on a phone for AR"; readonly openOnPhone: "Open on phone"; readonly viewThisModelInYourSpace: "View this model in your space"; readonly viewThisModelInVR: "View this model in VR"; readonly closePhoneHandoff: "Close phone handoff"; readonly arScanCode: "Scan the code and choose AR."; readonly qrCodeToOpenThisModelOnAPhone: "QR code to open this model on a phone"; readonly disableUVChecker: "Disable UV checker"; readonly enableUVChecker: "Enable UV checker"; readonly explodedView: "Exploded view"; readonly explodeAmount: "Explode amount"; readonly removeSectionCut: "Remove section cut"; readonly sectionCut: "Section cut"; readonly sectionAxis: "Section axis"; readonly sectionPosition: "Section position"; readonly keepTheOtherSide: "Keep the other side"; readonly pauseCinematic: "Pause cinematic"; readonly playCinematic: "Play cinematic"; readonly stopCinematicAndResetCamera: "Stop cinematic and reset camera"; readonly cancel: "Cancel"; readonly annotationCategories: "Annotation categories"; readonly annotations: "Annotations"; readonly all: "All"; readonly uncategorized: "Uncategorized"; readonly decalDragHint: "Drag the decal on the object. Release to save; Escape to cancel."; readonly showAll: "Show all"; readonly materialVariants: "Material variants"; readonly startGuidedTour: "Start guided tour"; readonly guidedTour: "Guided Tour"; readonly previousAnnotation: "Previous annotation"; readonly previous: "Prev"; readonly stopGuidedTour: "Stop guided tour"; readonly nextAnnotation: "Next annotation"; readonly next: "Next"; readonly exitFullscreen: "Exit fullscreen"; readonly enterFullscreen: "Enter fullscreen"; readonly resetCameraView: "Reset camera view"; readonly orbitControl: "Orbit Control"; readonly pointLock: "Point Lock"; readonly cameraController: "Camera controller"; readonly cameraControllerSettings: "Camera controller settings"; readonly downloadGLB: "Download GLB"; readonly downloadPNG: "Download PNG"; readonly downloadUVLayout: "Download UV Layout"; readonly videoFormat: "Video format"; readonly auto: "Auto"; readonly recordTurntableVideo: "Record turntable video"; readonly recordCinematicVideo: "Record cinematic video"; readonly videoUnsupported: "Video recording is not supported in this browser."; readonly downloadOptions: "Download options"; readonly exporting: "Exporting…"; readonly download: "Download"; readonly annotationTitlePlaceholder: "Title *"; readonly description: "Description"; readonly ok: "OK"; readonly arRelocate: "Relocate"; readonly tapToPlace: "Tap to place"; readonly closeAnnotation: "Close annotation"; readonly learnMore: "Learn more"; readonly stopMeasuring: "Stop measuring"; readonly startMeasuring: "Start measuring"; readonly toggleBoundingDimensions: "Toggle bounding dimensions"; readonly measurementTool: "Measurement tool"; readonly distance: "Distance"; readonly angle: "Angle"; readonly area: "Area"; readonly pointToPlane: "Point to plane"; readonly measurementSnapping: "Measurement snapping"; readonly noSnapping: "No snapping"; readonly snapAuto: "Snap: auto"; readonly snapVertex: "Snap: vertex"; readonly snapEdge: "Snap: edge"; readonly undoMeasurementPoint: "Undo measurement point"; readonly clearMeasurements: "Clear measurements"; readonly finishArea: "Finish area"; readonly openSceneObjectsPanel: "Open scene objects panel"; readonly sceneObjects: "SCENE OBJECTS"; readonly searchNodesLabels: "Search nodes, labels"; readonly closeSceneObjectsPanel: "Close scene objects panel"; readonly objectNavigator: "Objects in the 3D view"; readonly compareBefore: "Before"; readonly compareAfter: "After"; readonly compareDivider: "Comparison divider"; readonly viewIn3D: "View in 3D"; readonly objectNavigatorHint: "Arrow keys browse · Enter selects · Esc clears"; readonly selectionCleared: "Selection cleared"; readonly cameraKeyboardHelp: "3D view. Arrow keys orbit, Shift with Up or Down zooms, and W, A, S, D, Space and C move the camera."; readonly isolate: "Isolate"; readonly hide: "Hide"; readonly show: "Show"; readonly closePanel: "Close panel"; readonly actions: "Actions"; readonly openPanel: "Open panel"; readonly close: "Close"; readonly position: "Position"; readonly decalNudgeHint: "Click to fine-tune · Hold to move"; readonly decalNudgeControls: "Move decal in small steps"; readonly text: "Text"; readonly yourText: "Your text"; readonly textToAdd: "Text to add"; readonly textColour: "Text colour"; readonly addText: "Add text"; readonly image: "Image"; readonly chooseImage: "Choose image"; readonly imageToAdd: "Image to add"; readonly added: "Added"; readonly colour: "Colour"; readonly size: "Size"; readonly turn: "Turn"; readonly rotation: "Rotation"; readonly dragTheDecalAcrossTheObjectsSurface: "Drag the decal across the object's surface"; readonly move: "Move"; readonly remove: "Remove"; readonly noneAddedYet: "None added yet"; readonly done: "Done"; readonly moveForward: "Move forward"; readonly moveLeft: "Move left"; readonly moveRight: "Move right"; readonly moveBackward: "Move backward"; readonly sceneSettings: "Scene Settings"; readonly background: "Background"; readonly backgroundColor: "Background Color"; readonly environment: "Environment"; readonly autoRotate: "Auto Rotate"; readonly lighting: "Lighting"; readonly exposure: "Exposure"; readonly ambientLightIntensity: "Ambient Light Intensity"; readonly ambientLightColor: "Ambient Light Color"; readonly directLightIntensity: "Direct Light Intensity"; readonly directLightColor: "Direct Light Color"; readonly searchObjects: "Search objects"; readonly uploadedModel: "Uploaded model"; readonly clear: "Clear"; readonly chooseModel: "Choose model"; readonly loadingModel: "Loading model..."; readonly releaseToLoadYourModel: "Release to load your model"; readonly arFindSurface: "Move your device over a flat surface"; readonly arReleaseToPlace: "Release to place"; readonly arGestureHint: "Pinch to resize · Twist to rotate"; readonly angleFirstArmHint: "Pick the first arm"; readonly angleVertexHint: "Pick the angle's vertex"; readonly angleSecondArmHint: "Pick the second arm"; readonly angleNewHint: "Pick a point to start a new angle"; readonly areaNewHint: "Pick a point to start a new area"; readonly areaCornersHint: "Pick polygon corners in order, then Finish area"; readonly pointToPlaneFaceHint: "Pick the reference face"; readonly pointToPlanePointHint: "Pick a point to measure its perpendicular distance"; readonly pointToPlaneNewHint: "Pick a face to start a new measurement"; readonly distanceHint: "Pick points on the model to measure distances"; readonly visibleEntries: "{count} visible entries"; readonly objectCount: "{count} objects"; readonly annotationMarker: "Annotation {id}: {title}"; readonly recordingVideo: "Recording video · {progress}%"; readonly isolatedObjects: "Isolated: {count} objects"; readonly largeModelWarning: "Very large model ({millions}M triangles) — it may render and move slowly on this device, and click/hover selection on the model is disabled. Use the objects panel to select parts."; readonly preparingLargeModel: "Preparing large model ({millions}M triangles) — the first display can take a while on this device..."; readonly enterAR: "Enter AR"; readonly enterVR: "Enter VR"; readonly decalImage: "Image {index}"; readonly decalText: "Text {index}"; readonly decalAdded: "{count} added"; readonly up: "up"; readonly down: "down"; readonly left: "left"; readonly right: "right"; readonly moveDecal: "Move decal {direction}"; readonly moveDecalOnSurface: "Move {direction} on the visible surface"; readonly showAllObject: "Show all {name}"; readonly isolateObject: "Isolate {name}"; readonly isolatedObject: "Isolated: {name}"; readonly hideObject: "Hide {name}"; readonly showObject: "Show {name}"; readonly objectSelected: "{name} selected"; readonly objectNavigatorPosition: "{position} of {count}"; readonly compareDividerValue: "{before} {percent}%, {after} {rest}%"; readonly bindingMismatchOne: "1 object binding doesn't match this model"; readonly bindingMismatchMany: "{count} object bindings don't match this model"; readonly simpleLargeModelWarning: "Very large model detected ({millions}M triangles) — it may render and move slowly on this device, and click/hover selection on the model is disabled. Use the scene objects panel to select parts."; readonly dropModelHint: "Drag and drop {formats} here"; readonly loadErrorTitle: "This model couldn't be loaded"; readonly loadErrorNotFound: "Nothing was found at this address ({status}). Check that modelUrl points to the file."; readonly loadErrorDenied: "The server refused access to the file ({status}). Check that the file is public, or that a signed URL hasn't expired."; readonly loadErrorStatus: "The server responded with {status} when the file was requested."; readonly loadErrorNetwork: "The download was blocked or failed. Check that the URL is correct and, if the file is on another domain, that its server allows cross-origin requests (CORS) from this site."; readonly loadErrorHtml: "The server sent back a web page instead of a model. There's probably no file at this path: many servers answer a missing file with their index.html."; readonly loadErrorInvalidFile: "The file couldn't be read as {format}. Check that it's a valid {format} file."; readonly loadErrorInvalidExplicitFormat: "The file couldn't be read as {format}. Check that it's a valid {format} file and that modelFormat matches it."; readonly loadErrorMissingFormat: "The file couldn't be read as {format}. The URL has no file extension, so set modelFormat to the file's format."; readonly loadErrorPointCloud: "This PLY file is a point cloud: it has points but no faces, and the viewer shows meshes. Turn it into a mesh first, for example with MeshLab or Blender."; readonly measurementReferenceFaceRequired: "Pick a triangle face to define the reference plane."; readonly measurementTooManyPoints: "Finish or clear this measurement before adding more points."; readonly measurementAngleDistinct: "Pick a point away from the angle's vertex."; readonly areaMinimumPoints: "Pick at least three points to finish the area."; readonly areaDistinctPoints: "Area points must be distinct."; readonly areaStraightLine: "Area points must not lie on one straight line."; readonly areaNotPlanar: "Area points must lie on one plane."; readonly areaEdgesCross: "Area edges must not cross or touch each other."; readonly areaZero: "The polygon has no measurable area."; readonly decalSurfaceMissing: "Could not find a surface on this object for the decal."; readonly decalDirectionMissing: "No visible surface in that direction. Try another arrow or rotate the view."; readonly fullscreenExitFailed: "Could not exit fullscreen. Press Escape to exit."; readonly fullscreenEnterFailed: "Could not enter fullscreen. Check your browser or iframe fullscreen permissions and try again."; readonly uvCoordinatesMissing: "This model does not contain UV coordinates."; readonly uvExportFailed: "Could not create the UV layout archive."; readonly videoExportFailed: "Could not export the video."; readonly videoNotReady: "Viewer not ready for video export."; readonly videoExitXR: "Exit the XR session before recording a video."; readonly videoAlreadyRecording: "A video export is already in progress."; readonly videoPathRequired: "Enable a cinematic camera path before recording it."; readonly videoDurationInvalid: "Video duration must be greater than 0 and at most 300 seconds."; readonly videoFrameRateInvalid: "Video frame rate must be between 1 and 60."; readonly videoBitrateInvalid: "Video bitrate must be a positive number."; readonly videoContextLost: "Video export stopped because the WebGL context was lost."; readonly videoTimedOut: "Video export timed out. Keep the viewer tab visible while recording."; readonly videoEncodingFailed: "The browser could not encode the video."; readonly videoEmpty: "The browser produced an empty video."; readonly videoDidNotStart: "Video recording did not start."; readonly videoWebMUnsupported: "Video recording as WEBM is not supported in this browser."; readonly videoMP4Unsupported: "Video recording as MP4 is not supported in this browser."; readonly videoGIFUnsupported: "Video recording as GIF is not supported in this browser."; readonly videoGifWidthInvalid: "GIF width must be a whole number of pixels from 16 to 4096."; readonly environmentApartment: "apartment"; readonly environmentCity: "city"; readonly environmentDawn: "dawn"; readonly environmentForest: "forest"; readonly environmentLobby: "lobby"; readonly environmentNight: "night"; readonly environmentPark: "park"; readonly environmentStudio: "studio"; readonly environmentSunset: "sunset"; readonly environmentWarehouse: "warehouse"; readonly color: "Color"; readonly material: "Material"; readonly texturePreview: "texture preview"; readonly noTextureApplied: "No texture applied"; readonly noTextureCoordinates: "This part has no texture coordinates, so an image can't be placed on it."; readonly replaceImage: "Replace image"; readonly uploadImage: "Upload image"; readonly removeTexture: "Remove texture"; readonly texturePosition: "Texture position"; readonly offsetX: "Offset X"; readonly offsetY: "Offset Y"; readonly confirmTexturePosition: "Confirm this texture position and exit positioning mode"; readonly donePositioning: "Done positioning"; readonly textureOffsetHint: "Double-click the object in the preview to drag its texture directly (scroll to zoom), or edit its offset numerically."; readonly actionToggleLight: "Toggle Light"; readonly actionChangeLightColor: "Change Light Color"; readonly actionSetBrightness: "Set Brightness"; readonly actionChangeColor: "Change Color"; readonly actionChangeMaterial: "Change Material"; readonly actionToggleVisibility: "Toggle Visibility"; }; type ModelViewerLabelKey = keyof typeof DEFAULT_MODEL_VIEWER_LABELS; /** Plain-text overrides; dynamic labels use named {placeholders}. */ type ModelViewerLabels = Partial>; /** * Whether the viewer cuts motion that starts on its own: `"user"` follows the * visitor's `prefers-reduced-motion` setting, `"always"` and `"never"` override * it. */ type ReducedMotionSetting = "user" | "always" | "never"; /** One choice in a row of material variants. */ type MaterialVariantOption = { /** The variant's name, as `sceneConfig.model.activeVariants` lists it. */ name: string; /** The name without its group, for display: "Red" for "Paint: Red". */ label: string; /** * The colour of the variant's main material, as a CSS colour, when that * material is a plain colour rather than a texture. */ swatch?: string; }; /** * Variants that take turns: choosing one replaces the group's other choice. * Variants in different groups combine, like a paint colour and a wheel style. */ type MaterialVariantGroup = { /** "Paint" for variants named "Paint: Red" or "Paint / Red"; null otherwise. */ name: string | null; variants: MaterialVariantOption[]; }; /** * The active variants after choosing `name`: it replaces any other variant of * its group, so a paint colour swaps for another while the wheels stay. */ declare function chooseMaterialVariant(activeVariants: readonly string[], name: string, groups: readonly MaterialVariantGroup[]): string[]; export { DEFAULT_MODEL_VIEWER_LABELS as D, type MaterialVariantGroup as M, type ReducedMotionSetting as R, type MaterialVariantOption as a, type ModelViewerLabelKey as b, type ModelViewerLabels as c, chooseMaterialVariant as d };