import type { mat4, quat, vec2, vec3 } from 'gl-matrix'; import type { Transform } from '../components'; import type { ICanvas, IElement, INode, IParentNode } from '../dom'; import type { AABB, Rectangle } from '../shapes'; import type { DisplayObject } from '../display-objects'; export interface SceneGraphService { notifyMutationObservers: (canvas: ICanvas) => void; updateDisplayObjectDependency: (name: string, oldPath: DisplayObject, newPath: DisplayObject, object: DisplayObject) => void; informDependentDisplayObjects: (object: DisplayObject) => void; dirtyToRoot: (element: INode, affectChildren?: boolean) => void; dirtyLocalTransform: (element: INode, transform: Transform) => void; matches: (query: string, root: T) => boolean; querySelector: (query: string, root: R) => T | null; querySelectorAll: (query: string, root: R) => T[]; attach: (child: C, parent: P, index?: number) => void; detach: (child: C) => void; getOrigin: (element: INode) => vec3; setOrigin: (element: INode, origin: vec3 | number, y?: number, z?: number) => void; setPosition: (element: INode, position: vec3 | vec2) => void; setLocalPosition: (element: INode, position: vec3 | vec2, dirtify?: boolean) => void; scaleLocal: (element: INode, scaling: vec3 | vec2) => void; setLocalScale: (element: INode, scaling: vec3 | vec2, dirtify?: boolean) => void; getLocalScale: (element: INode) => vec3; getScale: (element: INode) => vec3; getLocalSkew: (element: INode) => vec2; translate: (element: INode, translation: vec3 | number, y?: number, z?: number) => void; translateLocal: (element: INode, translation: vec3 | number, y?: number, z?: number) => void; getPosition: (element: INode) => vec3; getLocalPosition: (element: INode) => vec3; setLocalSkew: (element: INode, skew: vec2 | number, y?: number, dirtify?: boolean) => void; setEulerAngles: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void; setLocalEulerAngles: (element: INode, degrees: vec3 | number, y?: number, z?: number, dirtify?: boolean) => void; rotateLocal: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void; rotate: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void; getRotation: (element: INode) => quat; setRotation: (element: INode, rotation: quat | number, y?: number, z?: number, w?: number) => void; setLocalRotation: (element: INode, rotation: quat | number, y?: number, z?: number, w?: number, dirtify?: boolean) => void; getLocalRotation: (element: INode) => quat; getWorldTransform: (element: INode, transform?: Transform) => mat4; getLocalTransform: (element: INode, transform?: Transform) => mat4; setLocalTransform: (element: INode, transform: mat4) => void; resetLocalTransform: (element: INode) => void; getBounds: (element: INode, render?: boolean) => AABB; getLocalBounds: (element: INode, render?: boolean) => AABB; getGeometryBounds: (element: INode, render?: boolean) => AABB; getTransformedGeometryBounds: (element: INode, render?: boolean, existedAABB?: AABB) => AABB | null; getBoundingClientRect: (element: INode) => Rectangle; syncHierarchy: (element: INode) => void; } //# sourceMappingURL=interfaces.d.ts.map