spaxel/dashboard/node_modules/parse5/dist/tree-adapters/default.d.ts
jedarden c817e96802 feat: implement repeated-setting change detection with guided calibration
Detects when user changes same config setting 3+ times within 24 hours.
Shows non-intrusive prompt offering help with guided calibration flow.

Guided calibration features:
- Test for false positives (walk around room)
- Test for missed motion (sit still)
- Suggest optimal value based on diurnal baseline SNR and link health
- Apply suggested value button

Files:
- dashboard/js/proactive.js: Complete implementation with localStorage tracking

Acceptance:
- Help prompt fires after 3+ changes in 24h
- Calibration flow tests both directions
- Suggests value based on system data
- Apply button works
2026-04-11 00:18:19 -04:00

84 lines
3.1 KiB
TypeScript

import { DOCUMENT_MODE, type NS } from '../common/html.js';
import type { Attribute, Location, ElementLocation } from '../common/token.js';
import type { TreeAdapter, TreeAdapterTypeMap } from './interface.js';
export interface Document {
/** The name of the node. */
nodeName: '#document';
/**
* Document mode.
*
* @see {@link DOCUMENT_MODE} */
mode: DOCUMENT_MODE;
/** The node's children. */
childNodes: ChildNode[];
/** Comment source code location info. Available if location info is enabled. */
sourceCodeLocation?: Location | null;
}
export interface DocumentFragment {
/** The name of the node. */
nodeName: '#document-fragment';
/** The node's children. */
childNodes: ChildNode[];
/** Comment source code location info. Available if location info is enabled. */
sourceCodeLocation?: Location | null;
}
export interface Element {
/** Element tag name. Same as {@link tagName}. */
nodeName: string;
/** Element tag name. Same as {@link nodeName}. */
tagName: string;
/** List of element attributes. */
attrs: Attribute[];
/** Element namespace. */
namespaceURI: NS;
/** Element source code location info, with attributes. Available if location info is enabled. */
sourceCodeLocation?: ElementLocation | null;
/** Parent node. */
parentNode: ParentNode | null;
/** The node's children. */
childNodes: ChildNode[];
}
export interface CommentNode {
/** The name of the node. */
nodeName: '#comment';
/** Parent node. */
parentNode: ParentNode | null;
/** Comment text. */
data: string;
/** Comment source code location info. Available if location info is enabled. */
sourceCodeLocation?: Location | null;
}
export interface TextNode {
nodeName: '#text';
/** Parent node. */
parentNode: ParentNode | null;
/** Text content. */
value: string;
/** Comment source code location info. Available if location info is enabled. */
sourceCodeLocation?: Location | null;
}
export interface Template extends Element {
nodeName: 'template';
tagName: 'template';
/** The content of a `template` tag. */
content: DocumentFragment;
}
export interface DocumentType {
/** The name of the node. */
nodeName: '#documentType';
/** Parent node. */
parentNode: ParentNode | null;
/** Document type name. */
name: string;
/** Document type public identifier. */
publicId: string;
/** Document type system identifier. */
systemId: string;
/** Comment source code location info. Available if location info is enabled. */
sourceCodeLocation?: Location | null;
}
export type ParentNode = Document | DocumentFragment | Element | Template;
export type ChildNode = Element | Template | CommentNode | TextNode | DocumentType;
export type Node = ParentNode | ChildNode;
export type DefaultTreeAdapterMap = TreeAdapterTypeMap<Node, ParentNode, ChildNode, Document, DocumentFragment, Element, CommentNode, TextNode, Template, DocumentType>;
export declare const defaultTreeAdapter: TreeAdapter<DefaultTreeAdapterMap>;