import { AsyncSelector, AsyncParams } from 'shadow-dom-selector'; declare enum HA_ROOT_ELEMENT { HOME_ASSISTANT = "HOME_ASSISTANT", HOME_ASSISTANT_MAIN = "HOME_ASSISTANT_MAIN", HA_DRAWER = "HA_DRAWER", HA_SIDEBAR = "HA_SIDEBAR", PARTIAL_PANEL_RESOLVER = "PARTIAL_PANEL_RESOLVER" } declare enum HA_LOVELACE_ELEMENT { HA_PANEL_LOVELACE = "HA_PANEL_LOVELACE", HUI_ROOT = "HUI_ROOT", HEADER = "HEADER", HUI_VIEW = "HUI_VIEW" } declare enum HA_DIALOG_ELEMENT { HA_MORE_INFO_DIALOG = "HA_MORE_INFO_DIALOG", HA_DIALOG = "HA_DIALOG", HA_DIALOG_CONTENT = "HA_DIALOG_CONTENT", HA_MORE_INFO_DIALOG_INFO = "HA_MORE_INFO_DIALOG_INFO", HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK = "HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK", HA_DIALOG_MORE_INFO_SETTINGS = "HA_DIALOG_MORE_INFO_SETTINGS" } declare enum HAQuerySelectorEvent { ON_LISTEN = "onListen", ON_PANEL_LOAD = "onPanelLoad", ON_LOVELACE_PANEL_LOAD = "onLovelacePanelLoad", ON_MORE_INFO_DIALOG_OPEN = "onMoreInfoDialogOpen", ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN = "onHistoryAndLogBookDialogOpen", ON_SETTINGS_DIALOG_OPEN = "onSettingsDialogOpen" } type HAQuerySelectorConfig = AsyncParams & { eventThreshold?: number; }; type ElementProps = { element: Promise; children?: HomeAssistantElement; selector: AsyncSelector; }; type HomeAssistantElement = { [key: string]: ElementProps; }; type HAElement = Omit; interface HAQuerySelectorEventListenerFunction { (evt: CustomEvent): void; } interface HAQuerySelectorEventListenerObject { handleEvent(object: CustomEvent): void; } type HAQuerySelectorEventListener = HAQuerySelectorEventListenerFunction | HAQuerySelectorEventListenerObject | null; type OnListenDetail = Record; type OnPanelLoadDetail = Record; type OnLovelacePanelLoadDetail = Record; type OnMoreInfoDialogOpenDetail = Record, HAElement>; type OnHistoryAndLogBookDialogOpenDetail = Record, HAElement>; type OnSettingsDialogOpenDetail = Record, HAElement>; interface HAQuerySelectorEventListenerEventMap { [HAQuerySelectorEvent.ON_LISTEN]: HAQuerySelectorEventListener; [HAQuerySelectorEvent.ON_PANEL_LOAD]: HAQuerySelectorEventListener; [HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD]: HAQuerySelectorEventListener; [HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN]: HAQuerySelectorEventListener; [HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN]: HAQuerySelectorEventListener; [HAQuerySelectorEvent.ON_SETTINGS_DIALOG_OPEN]: HAQuerySelectorEventListener; } declare class DelegatedEventTarget implements EventTarget { private delegate; addEventListener(...args: Parameters): void; dispatchEvent(...args: Parameters): boolean; removeEventListener(...args: Parameters): void; } declare class HAQuerySelector extends DelegatedEventTarget { constructor(config?: HAQuerySelectorConfig); private _config; private _dialogTree; private _homeAssistantRootTree; private _homeAssistantResolverTree; private _haDialogElements; private _haRootElements; private _haResolverElements; private _dialogsObserver; private _dialogsChildrenObserver; private _dialogsContentObserver; private _panelResolverObserver; private _lovelaceObserver; private _watchDialogsBinded; private _watchDialogsChildrenBinded; private _watchDialogsContentBinded; private _watchDashboardsBinded; private _watchLovelaceBinded; private _timestaps; private _dispatchEvent; private _updateDialogElements; private _updateRootElements; private _updateLovelaceElements; private _watchDialogs; private _watchDialogsChildren; private _watchDialogsContent; private _watchDashboards; private _watchLovelace; listen(): void; addEventListener(type: E, callback: HAQuerySelectorEventListenerEventMap[E], options?: boolean | AddEventListenerOptions): void; } export { HAQuerySelector, HAQuerySelectorEvent }; export type { HAElement, OnHistoryAndLogBookDialogOpenDetail, OnListenDetail, OnLovelacePanelLoadDetail, OnMoreInfoDialogOpenDetail, OnPanelLoadDetail, OnSettingsDialogOpenDetail };