## 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/store'; import { Expand } from '@tldraw/utils'; import { IndexKey } from '@tldraw/utils'; import { JsonObject } from '@tldraw/utils'; import { LegacyMigrations } from '@tldraw/store'; import { MigrationId } from '@tldraw/store'; import { MigrationSequence } from '@tldraw/store'; import { RecordId } from '@tldraw/store'; import { RecordType } from '@tldraw/store'; import { SerializedStore } from '@tldraw/store'; import { Signal } from '@tldraw/state'; import { StandaloneDependsOn } from '@tldraw/store'; import { Store } from '@tldraw/store'; import { StoreSchema } from '@tldraw/store'; import { StoreSnapshot } from '@tldraw/store'; import { StoreValidator } from '@tldraw/store'; import { T } from '@tldraw/validate'; import { UnknownRecord } from '@tldraw/store'; // @public (undocumented) export const arrowBindingMigrations: TLPropsMigrations; // @public (undocumented) export const arrowBindingProps: RecordProps; // @public (undocumented) export const ArrowShapeArrowheadEndStyle: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">; // @public (undocumented) export const ArrowShapeArrowheadStartStyle: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">; // @public (undocumented) export const arrowShapeMigrations: MigrationSequence; // @public (undocumented) export const arrowShapeProps: { arrowheadEnd: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">; arrowheadStart: EnumStyleProp<"arrow" | "bar" | "diamond" | "dot" | "inverted" | "none" | "pipe" | "square" | "triangle">; bend: T.Validator; color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">; end: T.Validator; fill: EnumStyleProp<"fill" | "none" | "pattern" | "semi" | "solid">; font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">; labelColor: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; labelPosition: T.Validator; scale: T.Validator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; start: T.Validator; text: T.Validator; }; // @public export const assetIdValidator: T.Validator; // @public (undocumented) export const assetMigrations: MigrationSequence; // @public (undocumented) export const AssetRecordType: RecordType; // @public (undocumented) export const assetValidator: T.Validator; // @public (undocumented) export const bindingIdValidator: T.Validator; // @public (undocumented) export const bookmarkShapeMigrations: TLPropsMigrations; // @public (undocumented) export const bookmarkShapeProps: { assetId: T.Validator; h: T.Validator; url: T.Validator; w: T.Validator; }; // @public export interface BoxModel { // (undocumented) h: number; // (undocumented) w: number; // (undocumented) x: number; // (undocumented) y: number; } // @public (undocumented) export const boxModelValidator: T.Validator; // @public (undocumented) export const CameraRecordType: RecordType; // @public export const canvasUiColorTypeValidator: T.Validator<"accent" | "black" | "laser" | "muted-1" | "selection-fill" | "selection-stroke" | "white">; // @public export function createAssetValidator(type: Type, props: T.Validator): T.ObjectValidator]: { id: TLAssetId; meta: JsonObject; props: Props; type: Type; typeName: 'asset'; }[P]; } & { [P_1 in T.ExtractOptionalKeys<{ id: TLAssetId; meta: JsonObject; props: Props; type: Type; typeName: 'asset'; }>]?: { id: TLAssetId; meta: JsonObject; props: Props; type: Type; typeName: 'asset'; }[P_1] | undefined; }>>; // @public (undocumented) export function createBindingId(id?: string): TLBindingId; // @public (undocumented) export function createBindingPropsMigrationIds>(bindingType: S, ids: T): { [k in keyof T]: `com.tldraw.binding.${S}/${T[k]}`; }; // @public (undocumented) export function createBindingPropsMigrationSequence(migrations: TLPropsMigrations): TLPropsMigrations; // @public (undocumented) export function createBindingValidator(type: Type, props?: { [K in keyof Props]: T.Validatable; }, meta?: { [K in keyof Meta]: T.Validatable; }): T.ObjectValidator>]: TLBaseBinding[P]; } & { [P_1 in T.ExtractOptionalKeys>]?: TLBaseBinding[P_1] | undefined; }>>; // @public export const createPresenceStateDerivation: ($user: Signal<{ color: string; id: string; name: string; }>, instanceId?: TLInstancePresence['id']) => (store: TLStore) => Signal; // @public (undocumented) export function createShapeId(id?: string): TLShapeId; // @public (undocumented) export function createShapePropsMigrationIds>(shapeType: S, ids: T): { [k in keyof T]: `com.tldraw.shape.${S}/${T[k]}`; }; // @public (undocumented) export function createShapePropsMigrationSequence(migrations: TLPropsMigrations): TLPropsMigrations; // @public (undocumented) export function createShapeValidator(type: Type, props?: { [K in keyof Props]: T.Validatable; }, meta?: { [K in keyof Meta]: T.Validatable; }): T.ObjectValidator>]: TLBaseShape[P]; } & { [P_1 in T.ExtractOptionalKeys>]?: TLBaseShape[P_1] | undefined; }>>; // @public export function createTLSchema({ shapes, bindings, migrations, }?: { bindings?: Record; migrations?: readonly MigrationSequence[]; shapes?: Record; }): TLSchema; // @public (undocumented) export const defaultColorNames: readonly ["black", "grey", "light-violet", "violet", "blue", "light-blue", "yellow", "orange", "green", "light-green", "light-red", "red", "white"]; // @public (undocumented) export const DefaultColorStyle: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; // @public (undocumented) export const DefaultColorThemePalette: { darkMode: TLDefaultColorTheme; lightMode: TLDefaultColorTheme; }; // @public (undocumented) export const DefaultDashStyle: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">; // @public (undocumented) export const DefaultFillStyle: EnumStyleProp<"fill" | "none" | "pattern" | "semi" | "solid">; // @public (undocumented) export const DefaultFontFamilies: { draw: string; mono: string; sans: string; serif: string; }; // @public (undocumented) export const DefaultFontStyle: EnumStyleProp<"draw" | "mono" | "sans" | "serif">; // @public (undocumented) export const DefaultHorizontalAlignStyle: EnumStyleProp<"end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start">; // @public (undocumented) export const defaultShapeSchemas: { [T in TLDefaultShape['type']]: SchemaPropsInfo; }; // @public (undocumented) export const DefaultSizeStyle: EnumStyleProp<"l" | "m" | "s" | "xl">; // @public (undocumented) export const DefaultTextAlignStyle: EnumStyleProp<"end" | "middle" | "start">; // @public (undocumented) export const DefaultVerticalAlignStyle: EnumStyleProp<"end" | "middle" | "start">; // @public (undocumented) export const DocumentRecordType: RecordType; // @public (undocumented) export const drawShapeMigrations: TLPropsMigrations; // @public (undocumented) export const drawShapeProps: { color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">; fill: EnumStyleProp<"fill" | "none" | "pattern" | "semi" | "solid">; isClosed: T.Validator; isComplete: T.Validator; isPen: T.Validator; scale: T.Validator; segments: T.ArrayOfValidator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; }; // @public (undocumented) export const EMBED_DEFINITIONS: readonly [{ readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["beta.tldraw.com", "tldraw.com", "localhost:3000"]; readonly minHeight: 300; readonly minWidth: 300; readonly overridePermissions: { readonly 'allow-top-navigation': true; }; readonly title: "tldraw"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "tldraw"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["figma.com"]; readonly title: "Figma"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "figma"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["google.*"]; readonly overridePermissions: { readonly 'allow-presentation': true; }; readonly title: "Google Maps"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "google_maps"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["val.town"]; readonly minHeight: 100; readonly minWidth: 260; readonly title: "Val Town"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "val_town"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["codesandbox.io"]; readonly minHeight: 300; readonly minWidth: 300; readonly title: "CodeSandbox"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "codesandbox"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 400; readonly hostnames: readonly ["codepen.io"]; readonly minHeight: 300; readonly minWidth: 300; readonly title: "Codepen"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "codepen"; readonly width: 520; }, { readonly doesResize: false; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 400; readonly hostnames: readonly ["scratch.mit.edu"]; readonly title: "Scratch"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "scratch"; readonly width: 520; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 450; readonly hostnames: readonly ["*.youtube.com", "youtube.com", "youtu.be"]; readonly isAspectRatioLocked: true; readonly overridePermissions: { readonly 'allow-popups-to-escape-sandbox': true; readonly 'allow-presentation': true; }; readonly title: "YouTube"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "youtube"; readonly width: 800; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["calendar.google.*"]; readonly instructionLink: "https://support.google.com/calendar/answer/41207?hl=en"; readonly minHeight: 360; readonly minWidth: 460; readonly overridePermissions: { readonly 'allow-popups-to-escape-sandbox': true; }; readonly title: "Google Calendar"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "google_calendar"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["docs.google.*"]; readonly minHeight: 360; readonly minWidth: 460; readonly overridePermissions: { readonly 'allow-popups-to-escape-sandbox': true; }; readonly title: "Google Slides"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "google_slides"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["gist.github.com"]; readonly title: "GitHub Gist"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "github_gist"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["replit.com"]; readonly title: "Replit"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "replit"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["felt.com"]; readonly title: "Felt"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "felt"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["open.spotify.com"]; readonly minHeight: 500; readonly overrideOutlineRadius: 12; readonly title: "Spotify"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "spotify"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 360; readonly hostnames: readonly ["vimeo.com", "player.vimeo.com"]; readonly isAspectRatioLocked: true; readonly title: "Vimeo"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "vimeo"; readonly width: 640; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["excalidraw.com"]; readonly isAspectRatioLocked: true; readonly title: "Excalidraw"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "excalidraw"; readonly width: 720; }, { readonly backgroundColor: "#fff"; readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 500; readonly hostnames: readonly ["observablehq.com"]; readonly isAspectRatioLocked: false; readonly title: "Observable"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "observable"; readonly width: 720; }, { readonly doesResize: true; readonly fromEmbedUrl: (url: string) => string | undefined; readonly height: 450; readonly hostnames: readonly ["desmos.com"]; readonly title: "Desmos"; readonly toEmbedUrl: (url: string) => string | undefined; readonly type: "desmos"; readonly width: 700; }]; // @public (undocumented) export interface EmbedDefinition { // (undocumented) readonly backgroundColor?: string; // (undocumented) readonly doesResize: boolean; // (undocumented) readonly fromEmbedUrl: (url: string) => string | undefined; // (undocumented) readonly height: number; // (undocumented) readonly hostnames: readonly string[]; // (undocumented) readonly instructionLink?: string; // (undocumented) readonly isAspectRatioLocked?: boolean; // (undocumented) readonly minHeight?: number; // (undocumented) readonly minWidth?: number; // (undocumented) readonly overrideOutlineRadius?: number; // (undocumented) readonly overridePermissions?: TLEmbedShapePermissions; // (undocumented) readonly title: string; // (undocumented) readonly toEmbedUrl: (url: string) => string | undefined; // (undocumented) readonly type: string; // (undocumented) readonly width: number; } // @public (undocumented) export const embedShapeMigrations: TLPropsMigrations; // @public export const embedShapePermissionDefaults: { readonly 'allow-downloads-without-user-activation': false; readonly 'allow-downloads': false; readonly 'allow-forms': true; readonly 'allow-modals': false; readonly 'allow-orientation-lock': false; readonly 'allow-pointer-lock': false; readonly 'allow-popups-to-escape-sandbox': false; readonly 'allow-popups': true; readonly 'allow-presentation': false; readonly 'allow-same-origin': true; readonly 'allow-scripts': true; readonly 'allow-storage-access-by-user-activation': false; readonly 'allow-top-navigation-by-user-activation': false; readonly 'allow-top-navigation': false; }; // @public (undocumented) export const embedShapeProps: { h: T.Validator; url: T.Validator; w: T.Validator; }; // @public export class EnumStyleProp extends StyleProp { // @internal constructor(id: string, defaultValue: T, values: readonly T[]); // (undocumented) readonly values: readonly T[]; } // @public (undocumented) export const frameShapeMigrations: TLPropsMigrations; // @public (undocumented) export const frameShapeProps: { h: T.Validator; name: T.Validator; w: T.Validator; }; // @public (undocumented) export const GeoShapeGeoStyle: EnumStyleProp<"arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box">; // @public (undocumented) export const geoShapeMigrations: TLPropsMigrations; // @public (undocumented) export const geoShapeProps: { align: EnumStyleProp<"end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start">; color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">; fill: EnumStyleProp<"fill" | "none" | "pattern" | "semi" | "solid">; font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">; geo: EnumStyleProp<"arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box">; growY: T.Validator; h: T.Validator; labelColor: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; scale: T.Validator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; text: T.Validator; url: T.Validator; verticalAlign: EnumStyleProp<"end" | "middle" | "start">; w: T.Validator; }; // @public (undocumented) export function getDefaultColorTheme(opts: { isDarkMode: boolean; }): TLDefaultColorTheme; // @public (undocumented) export function getDefaultTranslationLocale(): TLLanguage['locale']; // @internal (undocumented) export function getShapePropKeysByStyle(props: Record>): Map, string>; // @public (undocumented) export const groupShapeMigrations: TLPropsMigrations; // @public (undocumented) export const groupShapeProps: RecordProps; // @public (undocumented) export const highlightShapeMigrations: TLPropsMigrations; // @public (undocumented) export const highlightShapeProps: { color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; isComplete: T.Validator; isPen: T.Validator; scale: T.Validator; segments: T.ArrayOfValidator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; }; // @public (undocumented) export function idValidator>(prefix: Id['__type__']['typeName']): T.Validator; // @public (undocumented) export const ImageShapeCrop: T.ObjectValidator<{ bottomRight: VecModel; topLeft: VecModel; }>; // @public (undocumented) export const imageShapeMigrations: TLPropsMigrations; // @public (undocumented) export const imageShapeProps: { assetId: T.Validator; crop: T.Validator<{ bottomRight: VecModel; topLeft: VecModel; } | null>; flipX: T.Validator; flipY: T.Validator; h: T.Validator; playing: T.Validator; url: T.Validator; w: T.Validator; }; // @public (undocumented) export const InstancePageStateRecordType: RecordType; // @public (undocumented) export const InstancePresenceRecordType: RecordType; // @public (undocumented) export function isBinding(record?: UnknownRecord): record is TLBinding; // @public (undocumented) export function isBindingId(id?: string): id is TLBindingId; // @public (undocumented) export function isPageId(id: string): id is TLPageId; // @public (undocumented) export function isShape(record?: UnknownRecord): record is TLShape; // @public (undocumented) export function isShapeId(id?: string): id is TLShapeId; // @public (undocumented) export const LANGUAGES: readonly [{ readonly label: "Bahasa Indonesia"; readonly locale: "id"; }, { readonly label: "Català"; readonly locale: "ca"; }, { readonly label: "Čeština"; readonly locale: "cs"; }, { readonly label: "Danish"; readonly locale: "da"; }, { readonly label: "Deutsch"; readonly locale: "de"; }, { readonly label: "English"; readonly locale: "en"; }, { readonly label: "Español"; readonly locale: "es"; }, { readonly label: "Français"; readonly locale: "fr"; }, { readonly label: "Galego"; readonly locale: "gl"; }, { readonly label: "Hrvatski"; readonly locale: "hr"; }, { readonly label: "Italiano"; readonly locale: "it"; }, { readonly label: "Magyar"; readonly locale: "hu"; }, { readonly label: "Norwegian"; readonly locale: "no"; }, { readonly label: "Polski"; readonly locale: "pl"; }, { readonly label: "Português - Brasil"; readonly locale: "pt-br"; }, { readonly label: "Português - Europeu"; readonly locale: "pt-pt"; }, { readonly label: "Română"; readonly locale: "ro"; }, { readonly label: "Russian"; readonly locale: "ru"; }, { readonly label: "Slovenščina"; readonly locale: "sl"; }, { readonly label: "Suomi"; readonly locale: "fi"; }, { readonly label: "Svenska"; readonly locale: "sv"; }, { readonly label: "Tiếng Việt"; readonly locale: "vi"; }, { readonly label: "Türkçe"; readonly locale: "tr"; }, { readonly label: "Ukrainian"; readonly locale: "uk"; }, { readonly label: "עברית"; readonly locale: "he"; }, { readonly label: "عربي"; readonly locale: "ar"; }, { readonly label: "فارسی"; readonly locale: "fa"; }, { readonly label: "کوردی"; readonly locale: "ku"; }, { readonly label: "नेपाली"; readonly locale: "ne"; }, { readonly label: "हिन्दी"; readonly locale: "hi-in"; }, { readonly label: "తెలుగు"; readonly locale: "te"; }, { readonly label: "ภาษาไทย"; readonly locale: "th"; }, { readonly label: "မြန်မာစာ"; readonly locale: "my"; }, { readonly label: "한국어"; readonly locale: "ko-kr"; }, { readonly label: "日本語"; readonly locale: "ja"; }, { readonly label: "简体中文"; readonly locale: "zh-cn"; }, { readonly label: "繁體中文 (台灣)"; readonly locale: "zh-tw"; }]; // @public (undocumented) export const lineShapeMigrations: TLPropsMigrations; // @public (undocumented) export const lineShapeProps: { color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; dash: EnumStyleProp<"dashed" | "dotted" | "draw" | "solid">; points: T.DictValidator; scale: T.Validator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; spline: EnumStyleProp<"cubic" | "line">; }; // @public (undocumented) export const LineShapeSplineStyle: EnumStyleProp<"cubic" | "line">; // @public (undocumented) export const noteShapeMigrations: TLPropsMigrations; // @public (undocumented) export const noteShapeProps: { align: EnumStyleProp<"end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start">; color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">; fontSizeAdjustment: T.Validator; growY: T.Validator; scale: T.Validator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; text: T.Validator; url: T.Validator; verticalAlign: EnumStyleProp<"end" | "middle" | "start">; }; // @public (undocumented) export const opacityValidator: T.Validator; // @public (undocumented) export const pageIdValidator: T.Validator; // @public (undocumented) export const PageRecordType: RecordType; // @public (undocumented) export const parentIdValidator: T.Validator; // @internal (undocumented) export const pluckPreservingValues: (val?: null | TLInstance) => null | Partial; // @public (undocumented) export const PointerRecordType: RecordType; // @public (undocumented) export type RecordProps = { [K in keyof R['props']]: T.Validatable; }; // @public (undocumented) export type RecordPropsType>> = Expand<{ [K in keyof Config]: T.TypeOf; }>; // @public (undocumented) export const rootBindingMigrations: MigrationSequence; // @public (undocumented) export const rootShapeMigrations: MigrationSequence; // @public (undocumented) export interface SchemaPropsInfo { // (undocumented) meta?: Record>; // (undocumented) migrations?: LegacyMigrations | MigrationSequence | TLPropsMigrations; // (undocumented) props?: Record>; } // @public (undocumented) export const scribbleValidator: T.Validator; // @public (undocumented) export type SetValue> = T extends Set ? U : never; // @public (undocumented) export const shapeIdValidator: T.Validator; // @public export class StyleProp implements T.Validatable { // @internal protected constructor(id: string, defaultValue: Type, type: T.Validatable); // (undocumented) defaultValue: Type; static define(uniqueId: string, options: { defaultValue: Type; type?: T.Validatable; }): StyleProp; static defineEnum(uniqueId: string, options: { defaultValue: Values[number]; values: Values; }): EnumStyleProp; // (undocumented) readonly id: string; // (undocumented) setDefaultValue(value: Type): void; // (undocumented) readonly type: T.Validatable; // (undocumented) validate(value: unknown): Type; // (undocumented) validateUsingKnownGoodVersion(prevValue: Type, newValue: unknown): Type; } // @public (undocumented) export type StylePropValue> = T extends StyleProp ? U : never; // @public (undocumented) export const textShapeMigrations: TLPropsMigrations; // @public (undocumented) export const textShapeProps: { autoSize: T.Validator; color: EnumStyleProp<"black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow">; font: EnumStyleProp<"draw" | "mono" | "sans" | "serif">; scale: T.Validator; size: EnumStyleProp<"l" | "m" | "s" | "xl">; text: T.Validator; textAlign: EnumStyleProp<"end" | "middle" | "start">; w: T.Validator; }; // @public export const TL_CANVAS_UI_COLOR_TYPES: Set<"accent" | "black" | "laser" | "muted-1" | "selection-fill" | "selection-stroke" | "white">; // @public export const TL_CURSOR_TYPES: Set; // @public export const TL_HANDLE_TYPES: Set<"clone" | "create" | "vertex" | "virtual">; // @public export const TL_SCRIBBLE_STATES: Set<"active" | "paused" | "starting" | "stopping">; // @public (undocumented) export type TLArrowBinding = TLBaseBinding<'arrow', TLArrowBindingProps>; // @public (undocumented) export interface TLArrowBindingProps { isExact: boolean; isPrecise: boolean; // (undocumented) normalizedAnchor: VecModel; // (undocumented) terminal: 'end' | 'start'; } // @public (undocumented) export type TLArrowShape = TLBaseShape<'arrow', TLArrowShapeProps>; // @public (undocumented) export type TLArrowShapeArrowheadStyle = T.TypeOf; // @public (undocumented) export type TLArrowShapeProps = RecordPropsType; // @public (undocumented) export type TLAsset = TLBookmarkAsset | TLImageAsset | TLVideoAsset; // @public (undocumented) export interface TLAssetContext { // (undocumented) dpr: number; // (undocumented) networkEffectiveType: null | string; // (undocumented) screenScale: number; // (undocumented) shouldResolveToOriginal: boolean; // (undocumented) steppedScreenScale: number; } // @public (undocumented) export type TLAssetId = RecordId>; // @public (undocumented) export type TLAssetPartial = T extends T ? { id: TLAssetId; meta?: Partial; props?: Partial; type: T['type']; } & Partial> : never; // @public (undocumented) export type TLAssetShape = Extract; // @public export interface TLAssetStore { resolve(asset: TLAsset, ctx: TLAssetContext): null | Promise | string; upload(asset: TLAsset, file: File): Promise; } // @public (undocumented) export interface TLBaseAsset extends BaseRecord<'asset', TLAssetId> { // (undocumented) meta: JsonObject; // (undocumented) props: Props; // (undocumented) type: Type; } // @public (undocumented) export interface TLBaseBinding extends BaseRecord<'binding', TLBindingId> { // (undocumented) fromId: TLShapeId; // (undocumented) meta: JsonObject; // (undocumented) props: Props; // (undocumented) toId: TLShapeId; // (undocumented) type: Type; } // @public (undocumented) export interface TLBaseShape extends BaseRecord<'shape', TLShapeId> { // (undocumented) index: IndexKey; // (undocumented) isLocked: boolean; // (undocumented) meta: JsonObject; // (undocumented) opacity: TLOpacityType; // (undocumented) parentId: TLParentId; // (undocumented) props: Props; // (undocumented) rotation: number; // (undocumented) type: Type; // (undocumented) x: number; // (undocumented) y: number; } // @public export type TLBinding = TLDefaultBinding | TLUnknownBinding; // @public (undocumented) export type TLBindingCreate = Expand<{ fromId: T['fromId']; id?: TLBindingId; meta?: Partial; props?: Partial; toId: T['toId']; type: T['type']; typeName?: T['typeName']; }>; // @public export type TLBindingId = RecordId; // @public (undocumented) export type TLBindingUpdate = Expand<{ fromId?: T['fromId']; id: TLBindingId; meta?: Partial; props?: Partial; toId?: T['toId']; type: T['type']; typeName?: T['typeName']; }>; // @public export type TLBookmarkAsset = TLBaseAsset<'bookmark', { description: string; favicon: string; image: string; src: null | string; title: string; }>; // @public (undocumented) export type TLBookmarkShape = TLBaseShape<'bookmark', TLBookmarkShapeProps>; // @public (undocumented) export type TLBookmarkShapeProps = RecordPropsType; // @public export interface TLCamera extends BaseRecord<'camera', TLCameraId> { // (undocumented) meta: JsonObject; // (undocumented) x: number; // (undocumented) y: number; // (undocumented) z: number; } // @public export type TLCameraId = RecordId; // @public export type TLCanvasUiColor = SetValue; // @public export interface TLCursor { // (undocumented) rotation: number; // (undocumented) type: TLCursorType; } // @public export type TLCursorType = SetValue; // @public export type TLDefaultBinding = TLArrowBinding; // @public (undocumented) export type TLDefaultColorStyle = T.TypeOf; // @public (undocumented) export type TLDefaultColorTheme = Expand<{ background: string; id: 'dark' | 'light'; solid: string; text: string; } & Record<(typeof defaultColorNames)[number], TLDefaultColorThemeColor>>; // @public (undocumented) export interface TLDefaultColorThemeColor { // (undocumented) fill: string; // (undocumented) highlight: { p3: string; srgb: string; }; // (undocumented) note: { fill: string; text: string; }; // (undocumented) pattern: string; // (undocumented) semi: string; // (undocumented) solid: string; } // @public (undocumented) export type TLDefaultDashStyle = T.TypeOf; // @public (undocumented) export type TLDefaultFillStyle = T.TypeOf; // @public (undocumented) export type TLDefaultFontStyle = T.TypeOf; // @public (undocumented) export type TLDefaultHorizontalAlignStyle = T.TypeOf; // @public export type TLDefaultShape = TLArrowShape | TLBookmarkShape | TLDrawShape | TLEmbedShape | TLFrameShape | TLGeoShape | TLGroupShape | TLHighlightShape | TLImageShape | TLLineShape | TLNoteShape | TLTextShape | TLVideoShape; // @public (undocumented) export type TLDefaultSizeStyle = T.TypeOf; // @public (undocumented) export type TLDefaultTextAlignStyle = T.TypeOf; // @public (undocumented) export type TLDefaultVerticalAlignStyle = T.TypeOf; // @public export interface TLDocument extends BaseRecord<'document', RecordId> { // (undocumented) gridSize: number; // (undocumented) meta: JsonObject; // (undocumented) name: string; } // @public (undocumented) export const TLDOCUMENT_ID: RecordId; // @public (undocumented) export type TLDrawShape = TLBaseShape<'draw', TLDrawShapeProps>; // @public (undocumented) export type TLDrawShapeProps = RecordPropsType; // @public (undocumented) export interface TLDrawShapeSegment { // (undocumented) points: VecModel[]; // (undocumented) type: 'free' | 'straight'; } // @public (undocumented) export type TLEmbedShape = TLBaseShape<'embed', TLEmbedShapeProps>; // @public (undocumented) export type TLEmbedShapePermissions = { [K in keyof typeof embedShapePermissionDefaults]?: boolean; }; // @public (undocumented) export type TLEmbedShapeProps = RecordPropsType; // @public (undocumented) export type TLFrameShape = TLBaseShape<'frame', TLFrameShapeProps>; // @public (undocumented) export type TLFrameShapeProps = RecordPropsType; // @public (undocumented) export type TLGeoShape = TLBaseShape<'geo', TLGeoShapeProps>; // @public (undocumented) export type TLGeoShapeProps = RecordPropsType; // @public (undocumented) export type TLGroupShape = TLBaseShape<'group', TLGroupShapeProps>; // @public (undocumented) export type TLGroupShapeProps = { [key in never]: undefined; }; // @public export interface TLHandle { // (undocumented) canSnap?: boolean; id: string; // (undocumented) index: IndexKey; // (undocumented) type: TLHandleType; // (undocumented) x: number; // (undocumented) y: number; } // @public export type TLHandleType = SetValue; // @public (undocumented) export type TLHighlightShape = TLBaseShape<'highlight', TLHighlightShapeProps>; // @public (undocumented) export type TLHighlightShapeProps = RecordPropsType; // @public export type TLImageAsset = TLBaseAsset<'image', { fileSize: number; h: number; isAnimated: boolean; mimeType: null | string; name: string; src: null | string; w: number; }>; // @public (undocumented) export type TLImageShape = TLBaseShape<'image', TLImageShapeProps>; // @public (undocumented) export type TLImageShapeCrop = T.TypeOf; // @public (undocumented) export type TLImageShapeProps = RecordPropsType; // @public export interface TLInstance extends BaseRecord<'instance', TLInstanceId> { // (undocumented) brush: BoxModel | null; // (undocumented) chatMessage: string; // (undocumented) currentPageId: TLPageId; // (undocumented) cursor: TLCursor; // (undocumented) devicePixelRatio: number; // (undocumented) duplicateProps: { offset: { x: number; y: number; }; shapeIds: TLShapeId[]; } | null; // (undocumented) exportBackground: boolean; // (undocumented) followingUserId: null | string; // (undocumented) highlightedUserIds: string[]; // (undocumented) insets: boolean[]; // (undocumented) isChangingStyle: boolean; // (undocumented) isChatting: boolean; isCoarsePointer: boolean; // (undocumented) isDebugMode: boolean; // (undocumented) isFocused: boolean; // (undocumented) isFocusMode: boolean; // (undocumented) isGridMode: boolean; isHoveringCanvas: boolean | null; // (undocumented) isPenMode: boolean; // (undocumented) isReadonly: boolean; // (undocumented) isToolLocked: boolean; // (undocumented) meta: JsonObject; // (undocumented) opacityForNextShape: TLOpacityType; // (undocumented) openMenus: string[]; // (undocumented) screenBounds: BoxModel; // (undocumented) scribbles: TLScribble[]; // (undocumented) stylesForNextShape: Record; // (undocumented) zoomBrush: BoxModel | null; } // @public (undocumented) export const TLINSTANCE_ID: TLInstanceId; // @public (undocumented) export type TLInstanceId = RecordId; // @public export interface TLInstancePageState extends BaseRecord<'instance_page_state', TLInstancePageStateId> { // (undocumented) croppingShapeId: null | TLShapeId; // (undocumented) editingShapeId: null | TLShapeId; // (undocumented) erasingShapeIds: TLShapeId[]; // (undocumented) focusedGroupId: null | TLShapeId; // (undocumented) hintingShapeIds: TLShapeId[]; // (undocumented) hoveredShapeId: null | TLShapeId; // (undocumented) meta: JsonObject; // (undocumented) pageId: RecordId; // (undocumented) selectedShapeIds: TLShapeId[]; } // @public (undocumented) export type TLInstancePageStateId = RecordId; // @public (undocumented) export interface TLInstancePresence extends BaseRecord<'instance_presence', TLInstancePresenceID> { // (undocumented) brush: BoxModel | null; // (undocumented) camera: { x: number; y: number; z: number; }; // (undocumented) chatMessage: string; // (undocumented) color: string; // (undocumented) currentPageId: TLPageId; // (undocumented) cursor: { rotation: number; type: TLCursor['type']; x: number; y: number; }; // (undocumented) followingUserId: null | string; // (undocumented) lastActivityTimestamp: number; // (undocumented) meta: JsonObject; // (undocumented) screenBounds: BoxModel; // (undocumented) scribbles: TLScribble[]; // (undocumented) selectedShapeIds: TLShapeId[]; // (undocumented) userId: string; // (undocumented) userName: string; } // @public (undocumented) export type TLInstancePresenceID = RecordId; // @public (undocumented) export type TLLanguage = (typeof LANGUAGES)[number]; // @public (undocumented) export type TLLineShape = TLBaseShape<'line', TLLineShapeProps>; // @public (undocumented) export type TLLineShapeProps = RecordPropsType; // @public (undocumented) export type TLNoteShape = TLBaseShape<'note', TLNoteShapeProps>; // @public (undocumented) export type TLNoteShapeProps = RecordPropsType; // @public (undocumented) export type TLOpacityType = number; // @public export interface TLPage extends BaseRecord<'page', TLPageId> { // (undocumented) index: IndexKey; // (undocumented) meta: JsonObject; // (undocumented) name: string; } // @public (undocumented) export type TLPageId = RecordId; // @public (undocumented) export type TLParentId = TLPageId | TLShapeId; // @public export interface TLPointer extends BaseRecord<'pointer', TLPointerId> { // (undocumented) lastActivityTimestamp: number; // (undocumented) meta: JsonObject; // (undocumented) x: number; // (undocumented) y: number; } // @public (undocumented) export const TLPOINTER_ID: TLPointerId; // @public (undocumented) export type TLPointerId = RecordId; // @public (undocumented) export interface TLPropsMigration { // (undocumented) readonly dependsOn?: MigrationId[]; readonly down?: 'none' | 'retired' | ((props: any) => any); // (undocumented) readonly id: MigrationId; // (undocumented) readonly up: (props: any) => any; } // @public (undocumented) export interface TLPropsMigrations { // (undocumented) readonly sequence: Array; } // @public (undocumented) export type TLRecord = TLAsset | TLBinding | TLCamera | TLDocument | TLInstance | TLInstancePageState | TLInstancePresence | TLPage | TLPointer | TLShape; // @public (undocumented) export type TLSchema = StoreSchema; // @public export interface TLScribble { // (undocumented) color: TLCanvasUiColor; // (undocumented) delay: number; // (undocumented) id: string; // (undocumented) opacity: number; // (undocumented) points: VecModel[]; // (undocumented) shrink: number; // (undocumented) size: number; // (undocumented) state: SetValue; // (undocumented) taper: boolean; } // @public (undocumented) export type TLSerializedStore = SerializedStore; // @public export type TLShape = TLDefaultShape | TLUnknownShape; // @public (undocumented) export type TLShapeId = RecordId; // @public (undocumented) export type TLShapePartial = T extends T ? { id: TLShapeId; meta?: Partial; props?: Partial; type: T['type']; } & Partial> : never; // @public (undocumented) export type TLStore = Store; // @public (undocumented) export interface TLStoreProps { // (undocumented) assets: TLAssetStore; // (undocumented) defaultName: string; // (undocumented) multiplayerStatus: null | Signal<'offline' | 'online'>; onEditorMount: (editor: unknown) => (() => void) | void; } // @public (undocumented) export type TLStoreSchema = StoreSchema; // @public (undocumented) export type TLStoreSnapshot = StoreSnapshot; // @public (undocumented) export type TLTextShape = TLBaseShape<'text', TLTextShapeProps>; // @public (undocumented) export type TLTextShapeProps = RecordPropsType; // @public export type TLUnknownBinding = TLBaseBinding; // @public export type TLUnknownShape = TLBaseShape; // @public export type TLVideoAsset = TLBaseAsset<'video', { fileSize: number; h: number; isAnimated: boolean; mimeType: null | string; name: string; src: null | string; w: number; }>; // @public (undocumented) export type TLVideoShape = TLBaseShape<'video', TLVideoShapeProps>; // @public (undocumented) export type TLVideoShapeProps = RecordPropsType; // @public export interface VecModel { // (undocumented) x: number; // (undocumented) y: number; // (undocumented) z?: number; } // @public (undocumented) export const vecModelValidator: T.Validator; // @public (undocumented) export const videoShapeMigrations: TLPropsMigrations; // @public (undocumented) export const videoShapeProps: { assetId: T.Validator; h: T.Validator; playing: T.Validator; time: T.Validator; url: T.Validator; w: T.Validator; }; // (No @packageDocumentation comment for this package) ```