Optionaloptions: TInteractiveInkSSRCanvasOptionsOptionalinfoServer API information (version, etc.) loaded on first connection.
DOM layer manager handling rendering, UI, and modal elements.
Logger instance for this canvas.
OptionalsmartDerived, UI-oriented canvas state — see TCanvasConnectionState.
Listen to event.addConnectionStateChangedListener for change notifications.
ProtectedclearForce label fully inactive regardless of how many startOperation calls are pending.
For level-triggered signals with a single external "done" event (e.g. the client's
idle event) rather than one end call per start call.
Optionalparams: { conversionState?: TConverstionState }Mark one occurrence of label as finished. Must be paired with a prior startOperation.
OptionalmimeTypes: string[]Whether label is currently active (at least one unmatched startOperation call).
OptionalmimeType: stringProtectedinitializeProtectedmanageOnly relevant for WebSocket-backed canvas; other variants never call this.
ProtectedmanageThe client's idle event only fires in response to an explicit
client.waitForIdle() call (a request/response pair, not a push notification) — it does
NOT fire automatically after every addStrokes()/transform/etc. So it cannot be used to end
a "Recognizing" operation reliably. This only preserves the public event.emitIdle passthrough
for consumers who call waitForIdle() themselves.
ProtectedmarkCalled once the canvas has connected to its backend for the first time.
ProtectedonProtectedonProtectedonProtectedonProtectedonProtectedonProtectedonProtectedsetMark label as active. Prefer trackOperation unless the operation isn't promise-shaped.
ProtectedstartProtectedstopProtectedsyncRun fn, marking label as an active operation for the duration (shown on the canvas
state badge tooltip). Safe against overlapping/concurrent calls with the same or different
labels, and against fn throwing (the operation is always ended).
Event bus for subscribing to canvas lifecycle and content events.