import { Group, DisplayObject } from '../display-objects'; import type { BaseStyleProps } from '../types'; import type { DisplayObjectConfig, IAnimationTimeline, ICanvas, IDocument, IElement, INode } from './interfaces'; import { Node } from './Node'; /** * the entry of DOM tree * Document -> Node -> EventTarget * @see https://developer.mozilla.org/en-US/docs/Web/API/Document */ export declare class Document extends Node implements IDocument { constructor(); get children(): IElement[]; get childElementCount(): number; get firstElementChild(): IElement | null; get lastElementChild(): IElement | null; /** * only document has defaultView, points to canvas, * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/defaultView */ defaultView: ICanvas | null; /** * the root element of document, eg. * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/documentElement */ readonly documentElement: Group; /** * document.timeline in WAAPI */ readonly timeline: IAnimationTimeline; readonly ownerDocument: any; /** * @example const circle = document.createElement('circle', { style: { r: 10 } }); */ createElement, StyleProps extends BaseStyleProps>(tagName: string, options: DisplayObjectConfig): T; createElementNS, StyleProps extends BaseStyleProps>(namespaceURI: string, tagName: string, options: DisplayObjectConfig): T; cloneNode(deep?: boolean): this; destroy(): void; /** * Picking 2D graphics by traversing elements and checking bounding boxes. */ elementsFromBBox(minX: number, minY: number, maxX: number, maxY: number): DisplayObject[]; elementFromPointSync(x: number, y: number): DisplayObject; /** * Do picking with API instead of triggering interactive events. * * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Document/elementFromPoint */ elementFromPoint(x: number, y: number): Promise; elementsFromPointSync(x: number, y: number): DisplayObject[]; /** * Do picking with API instead of triggering interactive events. * * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Document/elementsFromPoint */ elementsFromPoint(x: number, y: number): Promise; /** * eg. Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed. */ appendChild(newChild: T, index?: number): T; insertBefore(newChild: T, refChild: INode | null): T; removeChild(oldChild: T, destroy?: boolean): T; replaceChild(newChild: INode, oldChild: T, destroy?: boolean): T; append(...nodes: INode[]): void; prepend(...nodes: INode[]): void; /** * Execute query on documentElement. */ getElementById(id: string): E | null; getElementsByName(name: string): E[]; getElementsByTagName(tagName: string): E[]; getElementsByClassName(className: string): E[]; querySelector(selectors: string): E | null; querySelectorAll(selectors: string): E[]; find(filter: (node: E) => boolean): E | null; findAll(filter: (node: E) => boolean): E[]; } //# sourceMappingURL=Document.d.ts.map