import type { Subscription } from "rxjs";
/** Populated via `jsxDev` transpiler */
export interface JSXDevInfo {
    /** `this` value in the context the component was created */
    self?: unknown;
    source?: undefined | {
        fileName: string;
        lineNumber: number;
        columnNumber: number;
    };
}
export interface JSXViewDevInfo extends JSXDevInfo, JSXViewDevRenderInfo {
}
export interface JSXViewDevRenderInfo {
    /** direct parent component */
    directParentComponent?: undefined | JSX.ComponentFunction<Record<PropertyKey, unknown>>;
    directParentComponentProps?: undefined | Record<PropertyKey, unknown>;
    parentComponent?: undefined | JSX.ComponentFunction<Record<PropertyKey, unknown>>;
    parentComponentProps?: undefined | Record<PropertyKey, unknown>;
    intrinsicProps?: undefined | Record<PropertyKey, unknown>;
}
export declare type JSXViewDevFunction = (element: Element, devInfo: JSXViewDevInfo, whileMountedSub: Subscription) => void;
/** @internal */
export declare const _devctx: import("./Context").Context<JSXViewDevFunction | null>;
export declare const _devctxglobal: [JSXViewDevFunction | null];
/**
 * Do something to every element given their dev information.
 *
 * @remarks
 * **Experimental**, please share feedback!
 */
export declare function addJSXDev(fn: JSXViewDevFunction | null): void;
//# sourceMappingURL=addJSXDev.d.ts.map