import type { ComponentInstance, Node, Viewport } from '..';
export interface NodeSelector {
    node: Node;
    instance?: ComponentInstance;
}
export declare class OffsetObserver {
    readonly nodeInstance: NodeSelector;
    readonly id: string;
    private lastOffsetLeft?;
    private lastOffsetTop?;
    private lastOffsetHeight?;
    private lastOffsetWidth?;
    accessor _height: number;
    accessor _width: number;
    accessor _left: number;
    accessor _top: number;
    accessor _right: number;
    accessor _bottom: number;
    get height(): number;
    get width(): number;
    get top(): number;
    get left(): number;
    get bottom(): number;
    get right(): number;
    accessor hasOffset: boolean;
    get offsetLeft(): number;
    get offsetTop(): number;
    get offsetHeight(): number;
    get offsetWidth(): number;
    get scale(): number;
    private pid;
    readonly viewport: Viewport;
    isRoot: boolean;
    readonly node: Node;
    readonly compute: () => void;
    constructor(nodeInstance: NodeSelector);
    computeRect(): DOMRect | undefined;
    purge(): void;
    isPurged(): boolean;
}
export declare function createOffsetObserver(nodeInstance: NodeSelector): OffsetObserver | null;
