import { ReadonlySignal, Signal } from '@preact/signals-core'; import { EventHandlersProperties } from '../events.js'; import { BufferGeometry, Intersection, Material, Matrix4, Mesh, Object3D, Raycaster, Sphere, Vector2Tuple } from 'three'; import { Overflow } from 'yoga-layout/load'; import { FlexNode, Inset } from '../flex/node.js'; import { OrderInfo } from '../order.js'; import { BaseOutProperties, InProperties, Properties, WithSignal } from '../properties/index.js'; import { ClassList } from './classes.js'; import { RenderContext, RootContext } from '../context.js'; import type { Container } from './container.js'; export declare function resetGlobalProperties(properties: InProperties | undefined): void; export declare function setGlobalProperties(properties: InProperties | undefined): void; export declare class Component extends Mesh { protected inputProperties?: InProperties | undefined; protected readonly initialClasses?: Array | string> | undefined; private abortController; readonly handlers: ReadonlySignal; readonly orderInfo: Signal; readonly isVisible: Signal; readonly isClipped: Signal; readonly boundingSphere: Sphere; /** * the properties of the this component * e.g. get the final computed backgroundColor using `component.properties.value.backgroundColor` */ readonly properties: Properties; readonly starProperties: Properties; readonly node: FlexNode; readonly size: Signal; readonly relativeCenter: Signal; readonly borderInset: Signal; readonly overflow: Signal; readonly displayed: Signal; readonly scrollable: Signal<[boolean, boolean]>; readonly paddingInset: Signal; readonly maxScrollPosition: Signal<[x?: number | undefined, y?: number | undefined]>; readonly root: Signal; readonly parentContainer: Signal | undefined>; readonly hoveredList: Signal; readonly activeList: Signal; readonly ancestorsHaveListenersSignal: Signal; readonly globalMatrix: Signal; readonly globalPanelMatrix: Signal; readonly abortSignal: AbortSignal; readonly classList: ClassList; constructor(inputProperties?: InProperties | undefined, initialClasses?: Array | string> | undefined, config?: { material?: Material; renderContext?: RenderContext; dynamicHandlers?: Signal; hasFocus?: Signal; isPlaceholder?: Signal; defaultOverrides?: InProperties; hasNonUikitChildren?: boolean; defaults?: WithSignal; }); raycast(raycaster: Raycaster, intersects: Intersection[]): unknown; updateMatrixWorld(): void; updateWorldMatrix(updateParents: boolean, updateChildren: boolean): void; /** * allows to extending the existing properties */ setProperties(inputProperties: InProperties): void; /** * allows to overwrite the properties */ resetProperties(inputProperties?: InProperties): void; /** * must only be called for the root component; the component that has a non-uikit component as a parent */ update(delta: number): void; protected copyInto(target: Component, recursive?: boolean): void; clone(recursive?: boolean): this; copy(_source: Object3D, _recursive?: boolean): this; dispose(): void; /** * only used for internally adding instanced panel group and instanced gylph group in case this component is a root component */ addUnsafe(...object: Object3D[]): this; }