export type RenderedStateTarget=HTMLElement|(()=>HTMLElement|null);
/** Returns true when `element` is connected and generates at least one CSS layout box. */
export declare function hasRenderedLayoutBox(element:HTMLElement):boolean;
/**
* Watches a live element (or lazily resolved element) for transitions between generating and not
* generating a CSS layout box. Resize and DOM observers provide the normal event-driven path; an
* animation-frame fallback keeps the contract working in browsers that do not expose either
* observer constructor and while a lazy target has not rendered yet.
*/
export declare class RenderedStateController{private readonly host;private readonly target;private readonly onChange;private started;private lastRendered?;private observedDocument?;private observedTarget?;private resizeObserver?;private mutationHub?;private observedVisibilityElements;private frame?;private frameView?;private readonly mutationSubscription;constructor(host:HTMLElement,target:RenderedStateTarget,onChange:(rendered:boolean)=>void);constructor(host:HTMLElement,onChange:(rendered:boolean)=>void);
/** The most recently observed state, or a synchronous current reading before `start()`. */
get rendered():boolean;
/** Starts watching and reports the current state synchronously. Idempotent. */
start():void;
/** Stops all observers and frame work. The controller can be started again. */
stop():void;
/** Re-reads the target immediately and returns its current state. */
check():boolean;private resolveTarget;private readCurrent;private refreshObservers;private mutationAffects;private scheduleFrame;private cancelFrame;}