## API Report File for "@tldraw/tlschema" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts import { BaseRecord } from '@tldraw/tlstore'; import { defineMigrations } from '@tldraw/tlstore'; import { ID } from '@tldraw/tlstore'; import { Migrations } from '@tldraw/tlstore'; import { RecordType } from '@tldraw/tlstore'; import { Signal } from 'signia'; import { Store } from '@tldraw/tlstore'; import { StoreSchema } from '@tldraw/tlstore'; import { StoreSchemaOptions } from '@tldraw/tlstore'; import { StoreSnapshot } from '@tldraw/tlstore'; import { StoreValidator } from '@tldraw/tlstore'; import { T } from '@tldraw/tlvalidate'; // @internal (undocumented) export const alignValidator: T.Validator<"end" | "middle" | "start">; // @internal (undocumented) export const arrowheadValidator: T.Validator<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">; // @public (undocumented) export const arrowShapeMigrations: Migrations; // @public (undocumented) export const arrowShapeTypeValidator: T.Validator; // @public (undocumented) export const arrowTerminalTypeValidator: T.Validator; // @internal (undocumented) export const assetIdValidator: T.Validator; // @public (undocumented) export const assetTypeMigrations: Migrations; // @public (undocumented) export const assetTypeValidator: T.Validator; // @public (undocumented) export const bookmarkAssetMigrations: Migrations; // @public (undocumented) export const bookmarkAssetTypeValidator: T.Validator; // @public (undocumented) export const bookmarkShapeMigrations: Migrations; // @public (undocumented) export const bookmarkShapeTypeValidator: T.Validator; // @public (undocumented) export interface Box2dModel { // (undocumented) h: number; // (undocumented) w: number; // (undocumented) x: number; // (undocumented) y: number; } // @public (undocumented) export const cameraTypeMigrations: Migrations; // @public (undocumented) export const cameraTypeValidator: T.Validator; // @internal (undocumented) export function CLIENT_FIXUP_SCRIPT(persistedStore: StoreSnapshot): StoreSnapshot; // @internal (undocumented) export const colorValidator: T.Validator<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "yellow">; // @public (undocumented) export function createAssetValidator(type: Type, props: T.Validator): T.ObjectValidator<{ id: TLAssetId; typeName: 'asset'; type: Type; props: Props; }>; // @public (undocumented) export function createCustomShapeId(id: string): TLShapeId; // @public (undocumented) export function createShapeId(): TLShapeId; // @public (undocumented) export function createShapeValidator(type: Type, props: T.Validator): T.ObjectValidator<{ id: TLShapeId; typeName: "shape"; x: number; y: number; rotation: number; index: string; parentId: TLParentId; type: Type; isLocked: boolean; props: Props; }>; // @public (undocumented) export function createTLSchema({ customShapeDefs, allowUnknownShapes, derivePresenceState, }: { customShapeDefs?: readonly CustomShapeTypeInfo[]; allowUnknownShapes?: boolean; derivePresenceState?: (store: TLStore) => Signal; }): StoreSchema; // @public (undocumented) export const cursorTypeValidator: T.Validator; // @public (undocumented) export const cursorValidator: T.Validator; // @public (undocumented) export type CustomShapeTypeInfo = { type: string; migrations: ReturnType; validator?: StoreValidator; }; // @internal (undocumented) export const dashValidator: T.Validator<"dashed" | "dotted" | "draw" | "solid">; // @internal (undocumented) export const defaultDerivePresenceState: (store: TLStore) => Signal; // @public (undocumented) export const documentTypeMigrations: Migrations; // @public (undocumented) export const documentTypeValidator: T.Validator; // @public (undocumented) export const drawShapeMigrations: Migrations; // @public (undocumented) export const drawShapeTypeValidator: T.Validator; // @public (undocumented) export const EMBED_DEFINITIONS: readonly [{ readonly type: "tldraw"; readonly title: "tldraw"; readonly hostnames: readonly ["beta.tldraw.com", "lite.tldraw.com", "www.tldraw.com"]; readonly minWidth: 300; readonly minHeight: 300; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "codesandbox"; readonly title: "CodeSandbox"; readonly hostnames: readonly ["codesandbox.io"]; readonly minWidth: 300; readonly minHeight: 300; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "codepen"; readonly title: "Codepen"; readonly hostnames: readonly ["codepen.io"]; readonly minWidth: 300; readonly minHeight: 300; readonly width: 520; readonly height: 400; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "scratch"; readonly title: "Scratch"; readonly hostnames: readonly ["scratch.mit.edu"]; readonly width: 520; readonly height: 400; readonly doesResize: false; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "youtube"; readonly title: "YouTube"; readonly hostnames: readonly ["*.youtube.com", "youtube.com", "youtu.be"]; readonly width: 800; readonly height: 450; readonly doesResize: true; readonly overridePermissions: { readonly 'allow-presentation': true; }; readonly isAspectRatioLocked: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "figma"; readonly title: "Figma"; readonly hostnames: readonly ["figma.com"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "google_maps"; readonly title: "Google Maps"; readonly hostnames: readonly ["google.*"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "google_calendar"; readonly title: "Google Calendar"; readonly hostnames: readonly ["calendar.google.*"]; readonly width: 720; readonly height: 500; readonly minWidth: 460; readonly minHeight: 360; readonly doesResize: true; readonly instructionLink: "https://support.google.com/calendar/answer/41207?hl=en"; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "google_slides"; readonly title: "Google Slides"; readonly hostnames: readonly ["docs.google.*"]; readonly width: 720; readonly height: 500; readonly minWidth: 460; readonly minHeight: 360; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "github_gist"; readonly title: "GitHub Gist"; readonly hostnames: readonly ["gist.github.com"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "replit"; readonly title: "Replit"; readonly hostnames: readonly ["replit.com"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "felt"; readonly title: "Felt"; readonly hostnames: readonly ["felt.com"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "spotify"; readonly title: "Spotify"; readonly hostnames: readonly ["open.spotify.com"]; readonly width: 720; readonly height: 500; readonly minHeight: 500; readonly overrideOutlineRadius: 12; readonly doesResize: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "vimeo"; readonly title: "Vimeo"; readonly hostnames: readonly ["vimeo.com", "player.vimeo.com"]; readonly width: 640; readonly height: 360; readonly doesResize: true; readonly isAspectRatioLocked: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "excalidraw"; readonly title: "Excalidraw"; readonly hostnames: readonly ["excalidraw.com"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly isAspectRatioLocked: true; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }, { readonly type: "observable"; readonly title: "Observable"; readonly hostnames: readonly ["observablehq.com"]; readonly width: 720; readonly height: 500; readonly doesResize: true; readonly isAspectRatioLocked: false; readonly backgroundColor: "#fff"; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }]; // @public (undocumented) export type EmbedDefinition = { readonly type: string; readonly title: string; readonly hostnames: readonly string[]; readonly minWidth?: number; readonly minHeight?: number; readonly width: number; readonly height: number; readonly doesResize: boolean; readonly isAspectRatioLocked?: boolean; readonly overridePermissions?: TLEmbedShapePermissions; readonly instructionLink?: string; readonly backgroundColor?: string; readonly overrideOutlineRadius?: number; readonly toEmbedUrl: (url: string) => string | undefined; readonly fromEmbedUrl: (url: string) => string | undefined; }; // @public (undocumented) export const embedShapeMigrations: Migrations; // @public (undocumented) export const embedShapeTypeValidator: T.Validator; // @internal (undocumented) export function ensureStoreIsUsable(store: TLStore): void; // @internal (undocumented) export const fillValidator: T.Validator<"none" | "pattern" | "semi" | "solid">; // @internal (undocumented) export function fixupRecord(oldRecord: TLRecord): { record: any; issues: string[]; }; // @internal (undocumented) export const fontValidator: T.Validator<"draw" | "mono" | "sans" | "serif">; // @public (undocumented) export const frameShapeMigrations: Migrations; // @public (undocumented) export const frameShapeTypeValidator: T.Validator; // @public (undocumented) export const geoShapeMigrations: Migrations; // @public (undocumented) export const geoShapeTypeValidator: T.Validator; // @internal (undocumented) export const geoValidator: T.Validator<"arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "diamond" | "ellipse" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box">; // @public (undocumented) export const groupShapeMigrations: Migrations; // @public (undocumented) export const groupShapeTypeValidator: T.Validator; // @public (undocumented) export const handleTypeValidator: T.Validator; // @public (undocumented) export const iconShapeMigrations: Migrations; // @public (undocumented) export const iconShapeTypeValidator: T.Validator; // @internal (undocumented) export const iconValidator: T.Validator<"activity" | "airplay" | "alert-circle" | "alert-octagon" | "alert-triangle" | "align-center" | "align-justify" | "align-left" | "align-right" | "anchor" | "aperture" | "archive" | "arrow-down-circle" | "arrow-down-left" | "arrow-down-right" | "arrow-down" | "arrow-left-circle" | "arrow-left" | "arrow-right-circle" | "arrow-right" | "arrow-up-circle" | "arrow-up-left" | "arrow-up-right" | "arrow-up" | "at-sign" | "award" | "bar-chart-2" | "bar-chart" | "battery-charging" | "battery" | "bell-off" | "bell" | "bluetooth" | "bold" | "book-open" | "book" | "bookmark" | "briefcase" | "calendar" | "camera-off" | "camera" | "cast" | "check-circle" | "check-square" | "check" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chevrons-down" | "chevrons-left" | "chevrons-right" | "chevrons-up" | "chrome" | "circle" | "clipboard" | "clock" | "cloud-drizzle" | "cloud-lightning" | "cloud-off" | "cloud-rain" | "cloud-snow" | "cloud" | "codepen" | "codesandbox" | "coffee" | "columns" | "command" | "compass" | "copy" | "corner-down-left" | "corner-down-right" | "corner-left-down" | "corner-left-up" | "corner-right-down" | "corner-right-up" | "corner-up-left" | "corner-up-right" | "cpu" | "credit-card" | "crop" | "crosshair" | "database" | "delete" | "disc" | "divide-circle" | "divide-square" | "divide" | "dollar-sign" | "download-cloud" | "download" | "dribbble" | "droplet" | "edit-2" | "edit-3" | "edit" | "external-link" | "eye-off" | "eye" | "facebook" | "fast-forward" | "feather" | "figma" | "file-minus" | "file-plus" | "file-text" | "file" | "film" | "filter" | "flag" | "folder-minus" | "folder-plus" | "folder" | "framer" | "frown" | "geo" | "gift" | "git-branch" | "git-commit" | "git-merge" | "git-pull-request" | "github" | "gitlab" | "globe" | "grid" | "hard-drive" | "hash" | "headphones" | "heart" | "help-circle" | "hexagon" | "home" | "image" | "inbox" | "info" | "instagram" | "italic" | "key" | "layers" | "layout" | "life-buoy" | "link-2" | "link" | "linkedin" | "list" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "map-pin" | "map" | "maximize-2" | "maximize" | "meh" | "menu" | "message-circle" | "message-square" | "mic-off" | "mic" | "minimize-2" | "minimize" | "minus-circle" | "minus-square" | "minus" | "monitor" | "moon" | "more-horizontal" | "more-vertical" | "mouse-pointer" | "move" | "music" | "navigation-2" | "navigation" | "octagon" | "package" | "paperclip" | "pause-circle" | "pause" | "pen-tool" | "percent" | "phone-call" | "phone-forwarded" | "phone-incoming" | "phone-missed" | "phone-off" | "phone-outgoing" | "phone" | "pie-chart" | "play-circle" | "play" | "plus-circle" | "plus-square" | "plus" | "pocket" | "power" | "printer" | "radio" | "refresh-ccw" | "refresh-cw" | "repeat" | "rewind" | "rotate-ccw" | "rotate-cw" | "rss" | "save" | "scissors" | "search" | "send" | "server" | "settings" | "share-2" | "share" | "shield-off" | "shield" | "shopping-bag" | "shopping-cart" | "shuffle" | "sidebar" | "skip-back" | "skip-forward" | "slack" | "slash" | "sliders" | "smartphone" | "smile" | "speaker" | "square" | "star" | "stop-circle" | "sun" | "sunrise" | "sunset" | "table" | "tablet" | "tag" | "target" | "terminal" | "thermometer" | "thumbs-down" | "thumbs-up" | "toggle-left" | "toggle-right" | "tool" | "trash-2" | "trash" | "trello" | "trending-down" | "trending-up" | "triangle" | "truck" | "tv" | "twitch" | "twitter" | "type" | "umbrella" | "underline" | "unlock" | "upload-cloud" | "upload" | "user-check" | "user-minus" | "user-plus" | "user-x" | "user" | "users" | "video-off" | "video" | "voicemail" | "volume-1" | "volume-2" | "volume-x" | "volume" | "watch" | "wifi-off" | "wifi" | "wind" | "x-circle" | "x-octagon" | "x-square" | "x" | "youtube" | "zap-off" | "zap" | "zoom-in" | "zoom-out">; // @internal (undocumented) export function idValidator>>(prefix: Id['__type__']['typeName']): T.Validator; // @public (undocumented) export const imageAssetMigrations: Migrations; // @public (undocumented) export const imageAssetTypeValidator: T.Validator; // @public (undocumented) export const imageShapeMigrations: Migrations; // @public (undocumented) export const imageShapeTypeValidator: T.Validator; // @internal (undocumented) export const instanceIdValidator: T.Validator; // @public (undocumented) export const instancePageStateMigrations: Migrations; // @public (undocumented) export const instancePageStateTypeValidator: T.Validator; // @public (undocumented) export const instanceTypeMigrations: Migrations; // @public (undocumented) export const instanceTypeValidator: T.Validator; // @public (undocumented) export function isShape(record?: BaseRecord): record is TLShape; // @public (undocumented) export function isShapeId(id?: string): id is TLShapeId; // @public (undocumented) export const lineShapeMigrations: Migrations; // @public (undocumented) export const lineShapeTypeValidator: T.Validator; // @public (undocumented) export const noteShapeMigrations: Migrations; // @public (undocumented) export const noteShapeTypeValidator: T.Validator; // @public (undocumented) export const onValidationFailure: StoreSchemaOptions['onValidationFailure']; // @internal (undocumented) export const opacityValidator: T.Validator<"0.1" | "0.25" | "0.5" | "0.75" | "1">; // @internal (undocumented) export const pageIdValidator: T.Validator; // @public (undocumented) export const pageTypeMigrations: Migrations; // @public (undocumented) export const pageTypeValidator: T.Validator; // @internal (undocumented) export const parentIdValidator: T.Validator; // @internal (undocumented) export const rootShapeTypeMigrations: Migrations; // @public (undocumented) export const scribbleTypeValidator: T.Validator; // @public (undocumented) export type SetValue> = T extends Set ? U : never; // @internal (undocumented) export const shapeIdValidator: T.Validator; // @internal (undocumented) export const sizeValidator: T.Validator<"l" | "m" | "s" | "xl">; // @public (undocumented) export type SmooshedUnionObject = { [K in T extends infer P ? keyof P : never]: T extends infer P ? K extends keyof P ? P[K] : never : never; }; // @internal (undocumented) export const splineValidator: T.Validator<"cubic" | "line">; // @public (undocumented) export const storeMigrations: Migrations; // @public (undocumented) export const textShapeMigrations: Migrations; // @public (undocumented) export const textShapeTypeValidator: T.Validator; // @public (undocumented) export const TL_ALIGN_TYPES: Set<"end" | "middle" | "start">; // @public (undocumented) export const TL_ARROW_TERMINAL_TYPE: Set<"binding" | "point">; // @public (undocumented) export const TL_ARROWHEAD_TYPES: Set<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">; // @public (undocumented) export const TL_COLOR_TYPES: Set<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "yellow">; // @public (undocumented) export const TL_CURSOR_TYPES: Set; // @public (undocumented) export const TL_DASH_TYPES: Set<"dashed" | "dotted" | "draw" | "solid">; // @public (undocumented) export const TL_DRAW_SHAPE_SEGMENT_TYPE: Set<"free" | "straight">; // @public (undocumented) export const TL_FILL_TYPES: Set<"none" | "pattern" | "semi" | "solid">; // @public (undocumented) export const TL_FONT_TYPES: Set<"draw" | "mono" | "sans" | "serif">; // @public (undocumented) export const TL_GEO_TYPES: Set<"arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "diamond" | "ellipse" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box">; // @public (undocumented) export const TL_HANDLE_TYPES: Set<"create" | "vertex" | "virtual">; // @public (undocumented) export const TL_ICON_TYPES: Set<"activity" | "airplay" | "alert-circle" | "alert-octagon" | "alert-triangle" | "align-center" | "align-justify" | "align-left" | "align-right" | "anchor" | "aperture" | "archive" | "arrow-down-circle" | "arrow-down-left" | "arrow-down-right" | "arrow-down" | "arrow-left-circle" | "arrow-left" | "arrow-right-circle" | "arrow-right" | "arrow-up-circle" | "arrow-up-left" | "arrow-up-right" | "arrow-up" | "at-sign" | "award" | "bar-chart-2" | "bar-chart" | "battery-charging" | "battery" | "bell-off" | "bell" | "bluetooth" | "bold" | "book-open" | "book" | "bookmark" | "briefcase" | "calendar" | "camera-off" | "camera" | "cast" | "check-circle" | "check-square" | "check" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chevrons-down" | "chevrons-left" | "chevrons-right" | "chevrons-up" | "chrome" | "circle" | "clipboard" | "clock" | "cloud-drizzle" | "cloud-lightning" | "cloud-off" | "cloud-rain" | "cloud-snow" | "cloud" | "codepen" | "codesandbox" | "coffee" | "columns" | "command" | "compass" | "copy" | "corner-down-left" | "corner-down-right" | "corner-left-down" | "corner-left-up" | "corner-right-down" | "corner-right-up" | "corner-up-left" | "corner-up-right" | "cpu" | "credit-card" | "crop" | "crosshair" | "database" | "delete" | "disc" | "divide-circle" | "divide-square" | "divide" | "dollar-sign" | "download-cloud" | "download" | "dribbble" | "droplet" | "edit-2" | "edit-3" | "edit" | "external-link" | "eye-off" | "eye" | "facebook" | "fast-forward" | "feather" | "figma" | "file-minus" | "file-plus" | "file-text" | "file" | "film" | "filter" | "flag" | "folder-minus" | "folder-plus" | "folder" | "framer" | "frown" | "geo" | "gift" | "git-branch" | "git-commit" | "git-merge" | "git-pull-request" | "github" | "gitlab" | "globe" | "grid" | "hard-drive" | "hash" | "headphones" | "heart" | "help-circle" | "hexagon" | "home" | "image" | "inbox" | "info" | "instagram" | "italic" | "key" | "layers" | "layout" | "life-buoy" | "link-2" | "link" | "linkedin" | "list" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "map-pin" | "map" | "maximize-2" | "maximize" | "meh" | "menu" | "message-circle" | "message-square" | "mic-off" | "mic" | "minimize-2" | "minimize" | "minus-circle" | "minus-square" | "minus" | "monitor" | "moon" | "more-horizontal" | "more-vertical" | "mouse-pointer" | "move" | "music" | "navigation-2" | "navigation" | "octagon" | "package" | "paperclip" | "pause-circle" | "pause" | "pen-tool" | "percent" | "phone-call" | "phone-forwarded" | "phone-incoming" | "phone-missed" | "phone-off" | "phone-outgoing" | "phone" | "pie-chart" | "play-circle" | "play" | "plus-circle" | "plus-square" | "plus" | "pocket" | "power" | "printer" | "radio" | "refresh-ccw" | "refresh-cw" | "repeat" | "rewind" | "rotate-ccw" | "rotate-cw" | "rss" | "save" | "scissors" | "search" | "send" | "server" | "settings" | "share-2" | "share" | "shield-off" | "shield" | "shopping-bag" | "shopping-cart" | "shuffle" | "sidebar" | "skip-back" | "skip-forward" | "slack" | "slash" | "sliders" | "smartphone" | "smile" | "speaker" | "square" | "star" | "stop-circle" | "sun" | "sunrise" | "sunset" | "table" | "tablet" | "tag" | "target" | "terminal" | "thermometer" | "thumbs-down" | "thumbs-up" | "toggle-left" | "toggle-right" | "tool" | "trash-2" | "trash" | "trello" | "trending-down" | "trending-up" | "triangle" | "truck" | "tv" | "twitch" | "twitter" | "type" | "umbrella" | "underline" | "unlock" | "upload-cloud" | "upload" | "user-check" | "user-minus" | "user-plus" | "user-x" | "user" | "users" | "video-off" | "video" | "voicemail" | "volume-1" | "volume-2" | "volume-x" | "volume" | "watch" | "wifi-off" | "wifi" | "wind" | "x-circle" | "x-octagon" | "x-square" | "x" | "youtube" | "zap-off" | "zap" | "zoom-in" | "zoom-out">; // @public (undocumented) export const TL_OPACITY_TYPES: Set<"0.1" | "0.25" | "0.5" | "0.75" | "1">; // @public (undocumented) export const TL_SCRIBBLE_STATES: Set<"active" | "paused" | "starting" | "stopping">; // @public (undocumented) export const TL_SIZE_TYPES: Set<"l" | "m" | "s" | "xl">; // @public (undocumented) export const TL_SPLINE_TYPES: Set<"cubic" | "line">; // @public (undocumented) export const TL_STYLE_TYPES: Set<"align" | "arrowheadEnd" | "arrowheadStart" | "color" | "dash" | "fill" | "font" | "geo" | "icon" | "labelColor" | "opacity" | "size" | "spline">; // @public (undocumented) export const TL_UI_COLOR_TYPES: Set<"accent" | "black" | "muted-1" | "selection-fill" | "selection-stroke" | "white">; // @public (undocumented) export interface TLAlignStyle extends TLBaseStyle { // (undocumented) id: TLAlignType; // (undocumented) type: 'align'; } // @public (undocumented) export type TLAlignType = SetValue; // @public (undocumented) export interface TLArrowheadEndStyle extends TLBaseStyle { // (undocumented) id: TLArrowheadType; // (undocumented) type: 'arrowheadEnd'; } // @public export interface TLArrowHeadModel { // (undocumented) id: string; // (undocumented) type: TLArrowheadType; } // @public (undocumented) export interface TLArrowheadStartStyle extends TLBaseStyle { // (undocumented) id: TLArrowheadType; // (undocumented) type: 'arrowheadStart'; } // @public (undocumented) export type TLArrowheadType = SetValue; // @public (undocumented) export type TLArrowShape = TLBaseShape<'arrow', TLArrowShapeProps>; // @public (undocumented) export type TLArrowShapeProps = { labelColor: TLColorType; color: TLColorType; fill: TLFillType; dash: TLDashType; size: TLSizeType; opacity: TLOpacityType; arrowheadStart: TLArrowheadType; arrowheadEnd: TLArrowheadType; font: TLFontType; start: TLArrowTerminal; end: TLArrowTerminal; bend: number; text: string; }; // @public (undocumented) export type TLArrowTerminal = { type: 'binding'; boundShapeId: TLShapeId; normalizedAnchor: Vec2dModel; isExact: boolean; } | { type: 'point'; x: number; y: number; }; // @public (undocumented) export type TLArrowTerminalType = SetValue; // @public (undocumented) export type TLAsset = TLBookmarkAsset | TLImageAsset | TLVideoAsset; // @public (undocumented) export const TLAsset: RecordType; // @public (undocumented) export type TLAssetId = ID>; // @public (undocumented) export type TLAssetPartial = T extends T ? { id: TLAssetId; type: T['type']; props?: Partial; } & Partial> : never; // @public (undocumented) export type TLAssetShape = Extract; // @public (undocumented) export interface TLBaseAsset extends BaseRecord<'asset'> { // (undocumented) props: Props; // (undocumented) type: Type; } // @public (undocumented) export interface TLBaseShape extends BaseRecord<'shape'> { // (undocumented) index: string; // (undocumented) isLocked: boolean; // (undocumented) parentId: TLParentId; // (undocumented) props: Props; // (undocumented) rotation: number; // (undocumented) type: Type; // (undocumented) x: number; // (undocumented) y: number; } // @public (undocumented) export interface TLBaseStyle { // (undocumented) icon: string; // (undocumented) type: TLStyleType; } // @public (undocumented) export type TLBookmarkAsset = TLBaseAsset<'bookmark', { title: string; description: string; image: string; src: null | string; }>; // @public (undocumented) export type TLBookmarkShape = TLBaseShape<'bookmark', TLBookmarkShapeProps>; // @public (undocumented) export type TLBookmarkShapeProps = { opacity: TLOpacityType; w: number; h: number; assetId: null | TLAssetId; url: string; }; // @public export interface TLCamera extends BaseRecord<'camera'> { // (undocumented) x: number; // (undocumented) y: number; // (undocumented) z: number; } // @public (undocumented) export const TLCamera: RecordType; // @public (undocumented) export type TLCameraId = ID; // @public (undocumented) export interface TLColorStyle extends TLBaseStyle { // (undocumented) id: TLColorType; // (undocumented) type: 'color'; } // @public (undocumented) export type TLColorType = SetValue; // @public (undocumented) export interface TLCursor { // (undocumented) color: TLUiColorType; // (undocumented) rotation: number; // (undocumented) type: TLCursorType; } // @public (undocumented) export type TLCursorType = SetValue; // @public (undocumented) export interface TLDashStyle extends TLBaseStyle { // (undocumented) id: TLDashType; // (undocumented) type: 'dash'; } // @public (undocumented) export type TLDashType = SetValue; // @public export interface TLDocument extends BaseRecord<'document'> { // (undocumented) gridSize: number; } // @public (undocumented) export const TLDocument: RecordType; // @public (undocumented) export const TLDOCUMENT_ID: ID; // @public (undocumented) export type TLDrawShape = TLBaseShape<'draw', TLDrawShapeProps>; // @public (undocumented) export type TLDrawShapeProps = { color: TLColorType; fill: TLFillType; dash: TLDashType; size: TLSizeType; opacity: TLOpacityType; segments: TLDrawShapeSegment[]; isComplete: boolean; isClosed: boolean; isPen: boolean; }; // @public (undocumented) export type TLDrawShapeSegment = { type: SetValue; points: Vec2dModel[]; }; // @public (undocumented) export type TLEmbedShape = TLBaseShape<'embed', TLEmbedShapeProps>; // @public export const tlEmbedShapePermissionDefaults: { readonly 'allow-downloads-without-user-activation': false; readonly 'allow-downloads': false; readonly 'allow-modals': false; readonly 'allow-orientation-lock': false; readonly 'allow-pointer-lock': false; readonly 'allow-popups': true; readonly 'allow-popups-to-escape-sandbox': false; readonly 'allow-presentation': false; readonly 'allow-storage-access-by-user-activation': false; readonly 'allow-top-navigation': false; readonly 'allow-top-navigation-by-user-activation': false; readonly 'allow-scripts': true; readonly 'allow-same-origin': true; readonly 'allow-forms': true; }; // @public (undocumented) export type TLEmbedShapePermissionName = keyof typeof tlEmbedShapePermissionDefaults; // @public (undocumented) export type TLEmbedShapePermissions = { [K in TLEmbedShapePermissionName]?: boolean; }; // @public (undocumented) export type TLEmbedShapeProps = { opacity: TLOpacityType; w: number; h: number; url: string; tmpOldUrl?: string; doesResize: boolean; overridePermissions?: TLEmbedShapePermissions; }; // @public (undocumented) export interface TLFillStyle extends TLBaseStyle { // (undocumented) id: TLFillType; // (undocumented) type: 'fill'; } // @public (undocumented) export type TLFillType = SetValue; // @public (undocumented) export interface TLFontStyle extends TLBaseStyle { // (undocumented) id: TLFontType; // (undocumented) type: 'font'; } // @public (undocumented) export type TLFontType = SetValue; // @public (undocumented) export type TLFrameShape = TLBaseShape<'frame', TLFrameShapeProps>; // @public (undocumented) export type TLFrameShapeProps = { opacity: TLOpacityType; w: number; h: number; name: string; }; // @public (undocumented) export type TLGeoShape = TLBaseShape<'geo', TLGeoShapeProps>; // @public (undocumented) export type TLGeoShapeProps = { geo: TLGeoType; labelColor: TLColorType; color: TLColorType; fill: TLFillType; dash: TLDashType; size: TLSizeType; opacity: TLOpacityType; font: TLFontType; align: TLAlignType; url: string; w: number; h: number; text: string; growY: number; }; // @public (undocumented) export interface TLGeoStyle extends TLBaseStyle { // (undocumented) id: TLGeoType; // (undocumented) type: 'geo'; } // @public (undocumented) export type TLGeoType = SetValue; // @public (undocumented) export type TLGroupShape = TLBaseShape<'group', TLGroupShapeProps>; // @public (undocumented) export type TLGroupShapeProps = { opacity: TLOpacityType; }; // @public export interface TLHandle { // (undocumented) canBind?: boolean; id: string; // (undocumented) index: string; // (undocumented) type: TLHandleType; // (undocumented) x: number; // (undocumented) y: number; } // @public export interface TLHandlePartial { x: number; // (undocumented) y: number; } // @public (undocumented) export type TLHandleType = SetValue; // @public (undocumented) export type TLIconShape = TLBaseShape<'icon', TLIconShapeProps>; // @public (undocumented) export type TLIconShapeProps = { size: TLSizeType; icon: TLIconType; dash: TLDashType; color: TLColorType; opacity: TLOpacityType; scale: number; }; // @public (undocumented) export interface TLIconStyle extends TLBaseStyle { // (undocumented) id: TLIconType; // (undocumented) type: 'icon'; } // @public (undocumented) export type TLIconType = SetValue; // @public (undocumented) export type TLImageAsset = TLBaseAsset<'image', { w: number; h: number; name: string; isAnimated: boolean; mimeType: null | string; src: null | string; }>; // @public (undocumented) export type TLImageCrop = { topLeft: Vec2dModel; bottomRight: Vec2dModel; }; // @public (undocumented) export type TLImageShape = TLBaseShape<'image', TLImageShapeProps>; // @public (undocumented) export type TLImageShapeProps = { opacity: TLOpacityType; url: string; playing: boolean; w: number; h: number; assetId: null | TLAssetId; crop: null | TLImageCrop; }; // @public export interface TLInstance extends BaseRecord<'instance'> { // (undocumented) brush: Box2dModel | null; // (undocumented) currentPageId: TLPageId; // (undocumented) cursor: TLCursor; // (undocumented) exportBackground: boolean; // (undocumented) followingUserId: null | TLUserId; // (undocumented) isDebugMode: boolean; // (undocumented) isFocusMode: boolean; // (undocumented) isToolLocked: boolean; // (undocumented) propsForNextShape: TLInstancePropsForNextShape; // (undocumented) screenBounds: Box2dModel; // (undocumented) scribble: null | TLScribble; // (undocumented) userId: TLUserId; // (undocumented) zoomBrush: Box2dModel | null; } // @public (undocumented) export const TLInstance: RecordType; // @public (undocumented) export type TLInstanceId = ID; // @public export interface TLInstancePageState extends BaseRecord<'instance_page_state'> { // (undocumented) cameraId: ID; // (undocumented) croppingId: null | TLShapeId; // (undocumented) editingId: null | TLShapeId; // (undocumented) erasingIds: TLShapeId[]; // (undocumented) focusLayerId: null | TLShapeId; // (undocumented) hintingIds: TLShapeId[]; // (undocumented) hoveredId: null | TLShapeId; // (undocumented) instanceId: ID; // (undocumented) pageId: ID; // (undocumented) selectedIds: TLShapeId[]; } // @public (undocumented) export const TLInstancePageState: RecordType; // @public (undocumented) export type TLInstancePageStateId = ID; // @public (undocumented) export interface TLInstancePresence extends BaseRecord<'instance_presence'> { // (undocumented) brush: Box2dModel | null; // (undocumented) camera: { x: number; y: number; z: number; }; // (undocumented) color: string; // (undocumented) currentPageId: TLPageId; // (undocumented) cursor: { x: number; y: number; type: TLCursor['type']; rotation: number; }; // (undocumented) followingUserId: null | TLUserId; // (undocumented) instanceId: TLInstanceId; // (undocumented) lastActivityTimestamp: number; // (undocumented) screenBounds: Box2dModel; // (undocumented) scribble: null | TLScribble; // (undocumented) selectedIds: TLShapeId[]; // (undocumented) userId: TLUserId; // (undocumented) userName: string; } // @public (undocumented) export const TLInstancePresence: RecordType; // @public (undocumented) export type TLInstancePropsForNextShape = Pick; // @public (undocumented) export type TLLineShape = TLBaseShape<'line', TLLineShapeProps>; // @public (undocumented) export type TLLineShapeProps = { color: TLColorType; dash: TLDashType; size: TLSizeType; opacity: TLOpacityType; spline: TLSplineType; handles: { [key: string]: TLHandle; }; }; // @public (undocumented) export type TLNoteShape = TLBaseShape<'note', TLNoteShapeProps>; // @public (undocumented) export type TLNoteShapeProps = { color: TLColorType; size: TLSizeType; font: TLFontType; align: TLAlignType; opacity: TLOpacityType; growY: number; url: string; text: string; }; // @public (undocumented) export type TLNullableShapeProps = { [K in TLShapeProp]?: null | TLShapeProps[K]; }; // @public (undocumented) export interface TLOpacityStyle extends TLBaseStyle { // (undocumented) id: TLOpacityType; // (undocumented) type: 'opacity'; } // @public (undocumented) export type TLOpacityType = SetValue; // @public export interface TLPage extends BaseRecord<'page'> { // (undocumented) index: string; // (undocumented) name: string; } // @public (undocumented) export const TLPage: RecordType; // @public (undocumented) export type TLPageId = ID; // @public (undocumented) export type TLParentId = TLPageId | TLShapeId; // @public (undocumented) export type TLRecord = TLAsset | TLCamera | TLDocument | TLInstance | TLInstancePageState | TLInstancePresence | TLPage | TLShape | TLUser | TLUserDocument | TLUserPresence; // @public (undocumented) export type TLScribble = { points: Vec2dModel[]; size: number; color: TLUiColorType; opacity: number; state: SetValue; }; // @public export type TLShape = TLArrowShape | TLBookmarkShape | TLDrawShape | TLEmbedShape | TLFrameShape | TLGeoShape | TLGroupShape | TLIconShape | TLImageShape | TLLineShape | TLNoteShape | TLTextShape | TLUnknownShape | TLVideoShape; // @public (undocumented) export type TLShapeId = ID>; // @public (undocumented) export type TLShapePartial = T extends T ? { id: TLShapeId; type: T['type']; props?: Partial; } & Partial> : never; // @public (undocumented) export type TLShapeProp = keyof TLShapeProps; // @public (undocumented) export type TLShapeProps = SmooshedUnionObject; // @public (undocumented) export type TLShapeType = TLShape['type']; // @public (undocumented) export interface TLSizeStyle extends TLBaseStyle { // (undocumented) id: TLSizeType; // (undocumented) type: 'size'; } // @public (undocumented) export type TLSizeType = SetValue; // @public (undocumented) export type TLSplineType = SetValue; // @public (undocumented) export interface TLSplineTypeStyle extends TLBaseStyle { // (undocumented) id: TLSplineType; // (undocumented) type: 'spline'; } // @public (undocumented) export type TLStore = Store; // @public (undocumented) export type TLStoreProps = { userId: TLUserId; instanceId: TLInstanceId; documentId: typeof TLDOCUMENT_ID; }; // @public (undocumented) export type TLStoreSchema = StoreSchema; // @public (undocumented) export type TLStoreSnapshot = StoreSnapshot; // @public (undocumented) export interface TLStyleCollections { // (undocumented) align: TLAlignStyle[]; // (undocumented) arrowheadEnd: TLArrowheadEndStyle[]; // (undocumented) arrowheadStart: TLArrowheadStartStyle[]; // (undocumented) color: TLColorStyle[]; // (undocumented) dash: TLDashStyle[]; // (undocumented) fill: TLFillStyle[]; // (undocumented) font: TLFontStyle[]; // (undocumented) geo: TLGeoStyle[]; // (undocumented) opacity: TLOpacityStyle[]; // (undocumented) size: TLSizeStyle[]; // (undocumented) spline: TLSplineTypeStyle[]; } // @public (undocumented) export type TLStyleItem = TLAlignStyle | TLColorStyle | TLDashStyle | TLFillStyle | TLFontStyle | TLOpacityStyle | TLSizeStyle; // @public (undocumented) export type TLStyleProps = Pick; // @public (undocumented) export type TLStyleType = SetValue; // @public (undocumented) export type TLTextShape = TLBaseShape<'text', TLTextShapeProps>; // @public (undocumented) export type TLTextShapeProps = { color: TLColorType; size: TLSizeType; font: TLFontType; align: TLAlignType; opacity: TLOpacityType; w: number; text: string; scale: number; autoSize: boolean; }; // @public (undocumented) export type TLUiColorType = SetValue; // @public (undocumented) export type TLUnknownShape = TLBaseShape; // @public export interface TLUser extends BaseRecord<'user'> { // (undocumented) locale: string; // (undocumented) name: string; } // @public (undocumented) export const TLUser: RecordType; // @public export interface TLUserDocument extends BaseRecord<'user_document'> { // (undocumented) isDarkMode: boolean; // (undocumented) isGridMode: boolean; // (undocumented) isMobileMode: boolean; // (undocumented) isPenMode: boolean; // (undocumented) isReadOnly: boolean; // (undocumented) isSnapMode: boolean; // (undocumented) lastUpdatedPageId: ID | null; // (undocumented) lastUsedTabId: ID | null; // (undocumented) userId: TLUserId; } // @public (undocumented) export const TLUserDocument: RecordType; // @public (undocumented) export type TLUserDocumentId = ID; // @public (undocumented) export type TLUserId = ID; // @public (undocumented) export interface TLUserPresence extends BaseRecord<'user_presence'> { // (undocumented) color: string; // (undocumented) cursor: Vec2dModel; // (undocumented) lastActivityTimestamp: number; // (undocumented) lastUsedInstanceId: null | TLInstanceId; // (undocumented) userId: TLUserId; // (undocumented) viewportPageBounds: Box2dModel; } // @public (undocumented) export const TLUserPresence: RecordType; // @public (undocumented) export type TLUserPresenceId = ID; // @public (undocumented) export type TLVideoAsset = TLBaseAsset<'video', { w: number; h: number; name: string; isAnimated: boolean; mimeType: null | string; src: null | string; }>; // @public (undocumented) export type TLVideoShape = TLBaseShape<'video', TLVideoShapeProps>; // @public (undocumented) export type TLVideoShapeProps = { opacity: TLOpacityType; w: number; h: number; time: number; playing: boolean; url: string; assetId: null | TLAssetId; }; // @public (undocumented) export const uiColorTypeValidator: T.Validator<"accent" | "black" | "muted-1" | "selection-fill" | "selection-stroke" | "white">; // @internal (undocumented) export const USER_COLORS: string[]; // @public (undocumented) export const userDocumentTypeMigrations: Migrations; // @public (undocumented) export const userDocumentTypeValidator: T.Validator; // @internal (undocumented) export const userIdValidator: T.Validator; // @public (undocumented) export const userPresenceTypeMigrations: Migrations; // @public (undocumented) export const userPresenceTypeValidator: T.Validator; // @public (undocumented) export const userTypeMigrations: Migrations; // @public (undocumented) export const userTypeValidator: T.Validator; // @public (undocumented) export interface Vec2dModel { // (undocumented) x: number; // (undocumented) y: number; // (undocumented) z?: number; } // @public (undocumented) export const videoAssetMigrations: Migrations; // @public (undocumented) export const videoAssetTypeValidator: T.Validator; // @public (undocumented) export const videoShapeMigrations: Migrations; // @public (undocumented) export const videoShapeTypeValidator: T.Validator; // (No @packageDocumentation comment for this package) ```