import * as glass_easel from 'glass-easel'; import { Node, ShadowRoot, GeneralBackendElement, GeneralBackendContext, ComponentSpace, backend, Element, GeneralComponent, SlotMode, BehaviorBuilder, TextNode, VirtualNode, EventMutLevel, EventListener, DataChange } from 'glass-easel'; interface IDGenerator { gen(): number; release(id: number): void; } declare const enum ChannelEventType { CREATE = 1, CREATE_CALLBACK = 2, DESTROY = 3, ON_WINDOW_RESIZE = 4, ON_WINDOW_RESIZE_CALLBACK = 5, ON_THEME_CHANGE = 6, ON_THEME_CHANGE_CALLBACK = 7, RENDER = 8, RENDER_CALLBACK = 9, CREATE_MEDIA_QUERY_OBSERVER = 10, MEDIA_QUERY_OBSERVER_CALLBACK = 11, CREATE_INTERSECTION_OBSERVER = 12, INTERSECTION_OBSERVER_CALLBACK = 13, CREATE_RESIZE_OBSERVER = 14, RESIZE_OBSERVER_CALLBACK = 15, DISCONNECT_OBSERVER = 16, ELEMENT_FROM_POINT = 17, ELEMENT_FROM_POINT_CALLBACK = 18, CREATE_ELEMENT = 19, CREATE_COMPONENT = 20, CREATE_TEXT_NODE = 21, CREATE_VIRTUAL_NODE = 22, CREATE_FRAGMENT = 23, RELEASE = 24, APPEND_CHILD = 25, REMOVE_CHILD = 26, INSERT_BEFORE = 27, REPLACE_CHILD = 28, SPLICE_BEFORE = 29, SPLICE_APPEND = 30, SPLICE_REMOVE = 31, SET_ID = 32, SET_SLOT = 33, SET_SLOT_NAME = 34, SET_SLOT_ELEMENT = 35, SET_INHERIT_SLOTS = 36, REGISTER_STYLE_SCOPE = 37, SET_STYLE = 38, ADD_CLASS = 39, REMOVE_CLASS = 40, SET_CLASS_ALIAS = 41, SET_ATTRIBUTE = 42, REMOVE_ATTRIBUTE = 43, SET_DATASET = 44, SET_TEXT = 45, SET_LISTENER_STATS = 46, ON_CREATE_EVENT = 47, ON_EVENT = 48, ON_RELEASE_EVENT = 49, SET_MODEL_BINDING_STAT = 50, SET_MODEL_BINDING_STAT_CALLBACK = 51, GET_CONTEXT = 52, GET_CONTEXT_CALLBACK = 53, ASSOCIATE_VALUE = 54, INIT_VALUES = 55, UPDATE_VALUES = 56, REGISTER_STYLE_SHEET_CONTENT = 57, APPEND_STYLE_SHEET_PATH = 58, DISABLE_STYLE_SHEET = 59, GET_ALL_COMPUTED_STYLES = 60, GET_ALL_COMPUTED_STYLES_CALLBACK = 61, GET_PSEUDO_COMPUTED_STYLES = 62, GET_PSEUDO_COMPUTED_STYLES_CALLBACK = 63, GET_INHERITED_RULES = 64, GET_INHERITED_RULES_CALLBACK = 65, GET_MATCHED_RULES = 66, GET_MATCHED_RULES_CALLBACK = 67, REPLACE_STYLE_SHEET_ALL_PROPERTIES = 68, REPLACE_STYLE_SHEET_ALL_PROPERTIES_CALLBACK = 69, GET_BOUNDING_CLIENT_RECT = 70, GET_BOUNDING_CLIENT_RECT_CALLBACK = 71, GET_SCROLL_OFFSET = 72, GET_SCROLL_OFFSET_CALLBACK = 73, SET_SCROLL_POSITION = 74, GET_BOX_MODEL = 75, GET_BOX_MODEL_CALLBACK = 76, GET_PSEUDO_TYPES = 77, GET_PSEUDO_TYPES_CALLBACK = 78, START_OVERLAY_INSPECT = 79, START_OVERLAY_INSPECT_CALLBACK = 80, STOP_OVERLAY_INSPECT = 81, TRIGGER_NATIVE_EVENT = 82, MANIPULATE_NATIVE_NODE = 83, MANIPULATE_NATIVE_NODE_CALLBACK = 84, GET_ACTIVE_ELEMENT = 85, GET_ACTIVE_ELEMENT_CALLBACK = 86, PERFORMANCE_START_TRACE = 87, PERFORMANCE_END_TRACE = 88, PERFORMANCE_STATS_CALLBACK = 89, INSERT_DYNAMIC_SLOT = 90, UPDATE_DYNAMIC_SLOT = 91, REMOVE_DYNAMIC_SLOT = 92, CUSTOM_METHOD = 93 } type ChannelEventTypeViewSide = ChannelEventType.CREATE_CALLBACK | ChannelEventType.ON_WINDOW_RESIZE_CALLBACK | ChannelEventType.ON_THEME_CHANGE_CALLBACK | ChannelEventType.RENDER_CALLBACK | ChannelEventType.MEDIA_QUERY_OBSERVER_CALLBACK | ChannelEventType.INTERSECTION_OBSERVER_CALLBACK | ChannelEventType.RESIZE_OBSERVER_CALLBACK | ChannelEventType.ELEMENT_FROM_POINT_CALLBACK | ChannelEventType.SET_MODEL_BINDING_STAT_CALLBACK | ChannelEventType.GET_ALL_COMPUTED_STYLES_CALLBACK | ChannelEventType.GET_PSEUDO_COMPUTED_STYLES_CALLBACK | ChannelEventType.GET_INHERITED_RULES_CALLBACK | ChannelEventType.GET_MATCHED_RULES_CALLBACK | ChannelEventType.REPLACE_STYLE_SHEET_ALL_PROPERTIES_CALLBACK | ChannelEventType.GET_BOUNDING_CLIENT_RECT_CALLBACK | ChannelEventType.GET_SCROLL_OFFSET_CALLBACK | ChannelEventType.GET_BOX_MODEL_CALLBACK | ChannelEventType.GET_PSEUDO_TYPES_CALLBACK | ChannelEventType.START_OVERLAY_INSPECT_CALLBACK | ChannelEventType.MANIPULATE_NATIVE_NODE_CALLBACK | ChannelEventType.GET_ACTIVE_ELEMENT_CALLBACK | ChannelEventType.GET_CONTEXT_CALLBACK | ChannelEventType.ON_CREATE_EVENT | ChannelEventType.ON_EVENT | ChannelEventType.ON_RELEASE_EVENT | ChannelEventType.PERFORMANCE_STATS_CALLBACK | ChannelEventType.INSERT_DYNAMIC_SLOT | ChannelEventType.UPDATE_DYNAMIC_SLOT | ChannelEventType.REMOVE_DYNAMIC_SLOT | ChannelEventType.CUSTOM_METHOD; declare function getNodeId(node: Node | Fragment): number | undefined; declare const MessageChannelViewSide: (publish: (arg: readonly [T, ...T extends ChannelEventType ? { 1: [number]; 2: [number, number, number, number, string]; 3: []; 4: [number]; 5: [number, number, number, number]; 6: [number]; 7: [number, string]; 8: [number]; 9: [number, string | null]; 10: [string, number]; 11: [number, string]; 12: [number, number | null, string, number[], number]; 13: [number, string]; 14: [number, number, number]; 15: [number, string]; 16: [number]; 17: [number, number, number]; 18: [number, number | null]; 19: [number, string, string, number]; 20: [ number, number, string, boolean, number, number | null, string[] | undefined, number | null, boolean, number ]; 21: [number, string, number]; 22: [number, string, number]; 23: [number]; 24: [number]; 25: [number, number]; 26: [number, number]; 27: [number, number, number]; 28: [number, number, number]; 29: [number, number, number, number]; 30: [number, number]; 31: [number, number, number]; 32: [number, string]; 33: [number, string]; 34: [number, string]; 35: [number, number | null]; 36: [number]; 37: [number, string | undefined]; 38: [number, string, number]; 39: [number, string]; 40: [number, string]; 41: [number, string, string[]]; 42: [number, string, unknown]; 43: [number, string]; 44: [number, string, unknown]; 45: [number, string]; 46: [number, string, boolean, number]; 50: [number, string, number | null]; 51: [number, string]; 52: [number, number]; 53: [number, string]; 47: [ number, string, string, string, number, string, number, boolean ]; 48: [number, number, string, number, boolean]; 49: [number]; 54: [number, string]; 55: [number, string]; 56: [number, string]; 57: [string, string]; 58: [number, string, number | undefined]; 59: [number]; 87: [number]; 88: [number, number]; 89: [number, number, number]; 60: [number, number]; 61: [number, string]; 62: [number, string, number]; 63: [number, string]; 64: [number, number]; 65: [number, string]; 66: [number, number]; 67: [number, string]; 68: [number, number, string, number]; 69: [number, number | null]; 70: [number, number]; 71: [number, number, number, number, number]; 72: [number, number]; 73: [number, number, number, number, number]; 74: [number, number, number, number]; 75: [number, number]; 76: [number, string]; 77: [number, number]; 78: [number, string[]]; 79: [number]; 80: [number, string, number | null]; 81: []; 82: [number, string, string]; 83: [number, string, string, number]; 84: [number, string]; 85: [number]; 86: [number, number | null]; 90: [number, [number, string, string][]]; 91: [number, string, string[]]; 92: [number[]]; 93: [number | null, unknown]; }[T] : never]) => void, subscribe: (cb: (arg: [ChannelEventType.CUSTOM_METHOD, number | null, unknown] | [ChannelEventType.CREATE, number] | [ChannelEventType.DESTROY] | [ChannelEventType.ON_WINDOW_RESIZE, number] | [ChannelEventType.ON_THEME_CHANGE, number] | [ChannelEventType.RENDER, number] | [ChannelEventType.CREATE_MEDIA_QUERY_OBSERVER, string, number] | [ChannelEventType.CREATE_INTERSECTION_OBSERVER, number, number | null, string, number[], number] | [ChannelEventType.CREATE_RESIZE_OBSERVER, number, number, number] | [ChannelEventType.DISCONNECT_OBSERVER, number] | [ChannelEventType.ELEMENT_FROM_POINT, number, number, number] | [ChannelEventType.CREATE_ELEMENT, number, string, string, number] | [ChannelEventType.CREATE_COMPONENT, number, number, string, boolean, number, number | null, string[] | undefined, number | null, boolean, number] | [ChannelEventType.CREATE_TEXT_NODE, number, string, number] | [ChannelEventType.CREATE_VIRTUAL_NODE, number, string, number] | [ChannelEventType.CREATE_FRAGMENT, number] | [ChannelEventType.RELEASE, number] | [ChannelEventType.APPEND_CHILD, number, number] | [ChannelEventType.REMOVE_CHILD, number, number] | [ChannelEventType.INSERT_BEFORE, number, number, number] | [ChannelEventType.REPLACE_CHILD, number, number, number] | [ChannelEventType.SPLICE_BEFORE, number, number, number, number] | [ChannelEventType.SPLICE_APPEND, number, number] | [ChannelEventType.SPLICE_REMOVE, number, number, number] | [ChannelEventType.SET_ID, number, string] | [ChannelEventType.SET_SLOT, number, string] | [ChannelEventType.SET_SLOT_NAME, number, string] | [ChannelEventType.SET_SLOT_ELEMENT, number, number | null] | [ChannelEventType.SET_INHERIT_SLOTS, number] | [ChannelEventType.REGISTER_STYLE_SCOPE, number, string | undefined] | [ChannelEventType.SET_STYLE, number, string, number] | [ChannelEventType.ADD_CLASS, number, string] | [ChannelEventType.REMOVE_CLASS, number, string] | [ChannelEventType.SET_CLASS_ALIAS, number, string, string[]] | [ChannelEventType.SET_ATTRIBUTE, number, string, unknown] | [ChannelEventType.REMOVE_ATTRIBUTE, number, string] | [ChannelEventType.SET_DATASET, number, string, unknown] | [ChannelEventType.SET_TEXT, number, string] | [ChannelEventType.SET_LISTENER_STATS, number, string, boolean, number] | [ChannelEventType.SET_MODEL_BINDING_STAT, number, string, number | null] | [ChannelEventType.GET_CONTEXT, number, number] | [ChannelEventType.ASSOCIATE_VALUE, number, string] | [ChannelEventType.INIT_VALUES, number, string] | [ChannelEventType.UPDATE_VALUES, number, string] | [ChannelEventType.REGISTER_STYLE_SHEET_CONTENT, string, string] | [ChannelEventType.APPEND_STYLE_SHEET_PATH, number, string, number | undefined] | [ChannelEventType.DISABLE_STYLE_SHEET, number] | [ChannelEventType.GET_ALL_COMPUTED_STYLES, number, number] | [ChannelEventType.GET_PSEUDO_COMPUTED_STYLES, number, string, number] | [ChannelEventType.GET_INHERITED_RULES, number, number] | [ChannelEventType.GET_MATCHED_RULES, number, number] | [ChannelEventType.REPLACE_STYLE_SHEET_ALL_PROPERTIES, number, number, string, number] | [ChannelEventType.GET_BOUNDING_CLIENT_RECT, number, number] | [ChannelEventType.GET_SCROLL_OFFSET, number, number] | [ChannelEventType.SET_SCROLL_POSITION, number, number, number, number] | [ChannelEventType.GET_BOX_MODEL, number, number] | [ChannelEventType.GET_PSEUDO_TYPES, number, number] | [ChannelEventType.START_OVERLAY_INSPECT, number] | [ChannelEventType.STOP_OVERLAY_INSPECT] | [ChannelEventType.TRIGGER_NATIVE_EVENT, number, string, string] | [ChannelEventType.MANIPULATE_NATIVE_NODE, number, string, string, number] | [ChannelEventType.GET_ACTIVE_ELEMENT, number] | [ChannelEventType.PERFORMANCE_START_TRACE, number] | [ChannelEventType.PERFORMANCE_END_TRACE, number, number]) => void) => void, controller: ViewController, idGenerator: () => IDGenerator) => { getNode: (id: number) => Node | Fragment | ShadowRoot | undefined; }; declare class Fragment { childNodes: Node[]; appendChild(child: Node): void; destroyBackendElement(): void; } declare class ViewController { private _glassEasel; private _rootNode; private _backendContext; private _componentSpace; private _listenerMap; private _styleSheetIdMapping; private _styleScopeIdMapping; private _traceStartTimestampMapping; private _customMethodHandler; private _dynamicSlotHandler; constructor(_glassEasel: typeof glass_easel, _rootNode: GeneralBackendElement, _backendContext: GeneralBackendContext, _componentSpace: ComponentSpace); create(initWindowSize: (res: { windowInfo: { width: number; height: number; devicePixelRatio: number; }; themeInfo: { theme: string; }; }) => void): void; destroy(): void; onWindowResize(cb: (res: { width: number; height: number; devicePixelRatio: number; }) => void): void; onThemeChange(cb: (res: { theme: string; }) => void): void; render(cb: (err: Error | null) => void): void; createMediaQueryObserver(status: backend.MediaQueryStatus, listener: (res: { matches: boolean; }) => void): backend.Observer | undefined; createIntersectionObserver(target: Element, relativeElement: Element | null, relativeElementMargin: string, threshold: number[], listener: (res: backend.IntersectionStatus) => void): backend.Observer | undefined; createResizeObserver(target: Element, mode: backend.ResizeObserverMode, listener: (res: backend.ResizeStatus) => void): backend.Observer | undefined; elementFromPoint(x: number, y: number, cb: (element: Element | null) => void): void; createElement(logicalName: string, stylingName: string, ownerShadowRoot: ShadowRoot): Element; createElementOrComponent(logicalName: string, stylingName: string, ownerShadowRoot: ShadowRoot): Element; createExternalComponent(logicalName: string, stylingName: string, ownerShadowRoot: ShadowRoot | undefined): GeneralComponent | string | null; private _$pendingCreateSimpleComponent; private _$pendingAssignComponentId; createSimpleComponent(tagName: string, ownerShadowRoot: ShadowRoot | undefined, virtualHost: boolean, styleScope: number, extraStyleScope: number | null, externalClasses: string[] | undefined, slotMode: SlotMode | null, writeIdToDOM: boolean, chainDefinition: ((def: BehaviorBuilder) => BehaviorBuilder) | undefined, cb: (component: GeneralComponent) => void): void; createTextNode(textContent: string, ownerShadowRoot: ShadowRoot): TextNode; createVirtualNode(virtualName: string, ownerShadowRoot: ShadowRoot): VirtualNode; createShadowRoot(hostNode: GeneralComponent): ShadowRoot; createFragment(): Fragment; release(node: Node | ShadowRoot | Fragment): void; appendChild(parent: Element | undefined, child: Node): void; removeChild(parent: Element | undefined, child: Node): void; insertBefore(parent: Element | undefined, child: Node, before: Node): void; replaceChild(parent: Element | undefined, child: Node, oldChild: Node): void; spliceBefore(parent: Element, before: Node, deleteCount: number, list: Fragment): void; spliceAppend(parent: Element, list: Fragment): void; spliceRemove(parent: Element, start: Node, deleteCount: number): void; associateValue(node: Node, data: Record): void; setId(element: Element, id: string): void; setSlot(element: Element, name: string): void; setSlotName(element: Element, name: string): void; setSlotElement(node: Node, slot: Element | null): void; setInheritSlots(element: Element): void; registerStyleScope(scopeId: number, stylePrefix?: string): void; setStyle(element: Element, styleText: string, styleSegmentIndex: number): void; addClass(element: Element, className: string): void; removeClass(element: Element, className: string): void; setClassAlias(element: GeneralComponent, className: string, target: string[]): void; setAttribute(element: Element, name: string, value: any): void; removeAttribute(element: Element, name: string): void; setDataset(element: Element, name: string, value: unknown): void; setText(textNode: TextNode, textContent: string): void; setModelBindingStat(element: Element, attributeName: string, listener: (newValue: unknown) => void): void; private callSuggestedBackendMethod; private callSuggestedBackendCbMethod; getAllComputedStyles(element: Element, cb: (res: backend.GetAllComputedStylesResponses) => void): void; getPseudoComputedStyles(element: Element, pseudoType: string, cb: (res: backend.GetAllComputedStylesResponses) => void): void; getInheritedRules(element: Element, cb: (res: backend.GetInheritedRulesResponses) => void): void; replaceStyleSheetAllProperties(sheetIndex: number, ruleIndex: number, inlineStyle: string, callback: (propertyIndex: number | null) => void): void; getBoundingClientRect(element: Element, cb: (res: { left: number; top: number; width: number; height: number; }) => void): void; getBoxModel(element: Element, cb: (res: { margin: backend.BoundingClientRect; border: backend.BoundingClientRect; padding: backend.BoundingClientRect; content: backend.BoundingClientRect; } | null) => void): void; getMatchedRules(element: Element, cb: (res: backend.GetMatchedRulesResponses) => void): void; getScrollOffset(element: Element, cb: (res: { scrollLeft: number; scrollTop: number; scrollWidth: number; scrollHeight: number; }) => void): void; setScrollPosition(element: Element, scrollLeft: number, scrollTop: number, duration: number): void; getContext(element: Element, cb: (res: any) => void): void; getPseudoTypes(element: Element, cb: (res: string[]) => void): void; startOverlayInspect(callback: (event: string, node: Element | null) => void): void; stopOverlayInspect(): void; triggerNativeEvent(element: Element, type: string, detail: unknown): void; manipulateNativeNode(element: Element, action: string, args: unknown, callback: (res: unknown) => void): void; getActiveElement(cb: (node: Element | null) => void): void; setListenerStats(element: Element, type: string, capture: boolean, mutLevel: EventMutLevel, listener: EventListener): void; initValues(element: Element, values: Record): void; updateValues(element: Element, changes: DataChange[]): void; registerStyleSheetContent(path: string, content: unknown): void; appendStyleSheetPath(index: number, path: string, styleScope?: number): void; disableStyleSheet(index: number): void; performanceStartTrace(index: number): void; performanceEndTrace(index: number, cb: (stats: { startTimestamp: number; endTimestamp: number; }) => void): void; handleCustomMethod(_element: Element | null, _options: unknown): void; onCustomMethod(handler: (element: Element | null, options: any) => void): void; sendCustomMethod(element: Element | null, options: unknown): void; setDynamicSlotHandler(handler: typeof this._dynamicSlotHandler): void; } export { ChannelEventType, Fragment, MessageChannelViewSide, ViewController, getNodeId };