import type { AnyDataType, GetDataType } from "dilswer"; import type { ElementLifecycle } from "../../element-extender"; import type { WindowElement } from "../../rg-types"; type KeysOf

= P extends P ? keyof P : never; export type _PropsReader

= { [K in KeysOf

]?: P extends Record ? T : never; }; export type PropsReader

= _PropsReader> & { __rg_parent_window?: WindowElement; }; export type MapperUpdateApi

= { propName: string; instead(propertyName: KeysOf

): void; isUpdatedInThisCycle(propertyName: KeysOf

): boolean; }; export type PropUpdateCallback = (v: GetDataType | undefined, allProps: PropsReader

, mapperUpdateApi: MapperUpdateApi

) => void | (() => void); export type PropCaseCollector = Record(type: T, update: PropUpdateCallback) => PropCaseCollector>; export type DiffedProps = [propName: string, value: any][]; export type CaseCollectorCallback

> = (caseCollector: PropCaseCollector, P>, api: { lifecycle: ElementLifecycle; props: PropsReader

; addCustomCase: (nameMatch: (propName: string) => boolean, update: PropUpdateCallback) => void; }) => void; export declare const UnsetProp: unique symbol; export declare class PropertyMapper

> { private element; private properties; private map; private isFirstUpdate; private customCases; private collectorApi; currentProps: PropsReader

; private addCustomCase; constructor(element: ElementLifecycle, ...getCases: Array>); private getPropsReader; addCases(...getCases: Array>): void; private update; private cleanupAll; skipDefaults(): void; get(key: string): any; } export {};