Deprecated legacy interactables APIs for registering model-editable components with per-instance update tools.
API Reference
Interactables
Deprecated. Since 2026-06-14 — migrate to the Unstable / Experimental API. Scheduled for removal on/after 2026-09-14. See Interactables migration guide.
Interactables propslength: 0toString: () => stringtoLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }pop: () => undefinedpush: (...items: never[]) => numberconcat: { (...items: ConcatArray<never>[]): never[]; (...items: ConcatArray<never>[]): never[]; }join: (separator?: string) => stringreverse: () => never[]shift: () => undefinedslice: (start?: number, end?: number) => never[]sort: (compareFn?: ((a: never, b: never) => number) | undefined) => []splice: { (start: number, deleteCount?: number): never[]; (start: number, deleteCount: number, ...items: never[]): never[]; }unshift: (...items: never[]) => numberindexOf: (searchElement: never, fromIndex?: number) => numberlastIndexOf: (searchElement: never, fromIndex?: number) => numberevery: { <S>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean; }some: (predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any) => booleanforEach: (callbackfn: (value: never, index: number, array: never[]) => void, thisArg?: any) => voidmap: <U>(callbackfn: (value: never, index: number, array: never[]) => U, thisArg?: any) => U[]filter: { <S>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): S[]; (predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): never[]; }reduce: { (callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never; (callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never; <U>(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U; }reduceRight: { (callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never; (callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never; <U>(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U; }find: { <S>(predicate: (value: never, index: number, obj: never[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: never, index: number, obj: never[]) => unknown, thisArg?: any): undefined; }findIndex: (predicate: (value: never, index: number, obj: never[]) => unknown, thisArg?: any) => numberfill: (value: never, start?: number, end?: number) => []copyWithin: (target: number, start: number, end?: number) => []entries: () => ArrayIterator<[number, never]>keys: () => ArrayIterator<number>values: () => ArrayIterator<never>includes: (searchElement: never, fromIndex?: number) => booleanflatMap: <U, This>(callback: (this: This, value: never, index: number, array: never[]) => U | readonly U[], thisArg?: This | undefined) => U[]flat: <A, D>(this: A, depth?: D | undefined) => FlatArray<A, D>[]at: (index: number) => undefinedfindLast: { <S>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): undefined; }findLastIndex: (predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any) => numbertoReversed: () => never[]toSorted: (compareFn?: ((a: never, b: never) => number) | undefined) => never[]toSpliced: { (start: number, deleteCount: number, ...items: never[]): never[]; (start: number, deleteCount?: number): never[]; }with: (index: number, value: never) => never[]
useAssistantInteractable
Deprecated. Since 2026-06-14 — migrate to the Unstable / Experimental API. Scheduled for removal on/after 2026-09-14. See Interactables migration guide.
Registers an interactable with the AI assistant.
This hook handles registration only. To read and write the interactable's state, use useInteractableState with the returned id.
useAssistantInteractablename: stringconfig: AssistantInteractablePropsdescription: stringstateSchema: InteractableStateSchemainitialState: unknownid?: stringselected?: boolean
useInteractableState
Deprecated. Since 2026-06-14 — migrate to the Unstable / Experimental API. Scheduled for removal on/after 2026-09-14. See Interactables migration guide.
Reads and writes the state of a registered interactable.
Pair with useAssistantInteractable which handles registration.
useInteractableStateid: stringfallback: TState