import type { Component as ComponentOriginal, EventRef as EventRefOriginal } from 'obsidian'; export declare class Component { children__: Component[]; cleanups__: (() => unknown)[]; events__: EventRefOriginal[]; intervals__: number[]; loaded__: boolean; constructor(); static create__(): Component; static fromOriginalType__(value: ComponentOriginal): Component; addChild(component: T): T; asOriginalType__(): ComponentOriginal; constructor__(): void; load(): void; onload(): void; onunload(): void; register(callback: () => unknown): void; registerDomEvent(el: Window, type: K, callback: (this: HTMLElement, event: WindowEventMap[K]) => unknown, options?: AddEventListenerOptions | boolean): void; registerDomEvent(el: Document, type: K, callback: (this: HTMLElement, event: DocumentEventMap[K]) => unknown, options?: AddEventListenerOptions | boolean): void; registerDomEvent(el: HTMLElement, type: K, callback: (this: HTMLElement, event: HTMLElementEventMap[K]) => unknown, options?: AddEventListenerOptions | boolean): void; registerEvent(ref: EventRefOriginal): void; registerInterval(id: number): number; removeChild(component: T): T; unload(): void; }