import type { Key } from "../functional/key"; import type { SlotContent, ViewBody, ViewFn } from "../public/view"; import type { Maybe } from "../functional/maybe"; import type { Wildcard } from "./wildcard"; export type BitFlags = number; export declare const F_PENDING = 1; export declare const F_DIRTY: number; export declare const F_MOVED: number; export declare const F_PRIMITIVE: number; export declare const F_TEXT_CONTENT: number; export declare const F_DISPOSED: number; export type ViewRecord = { viewFn: ViewFn; userKey: Maybe; props: Props; slot: Maybe; body: Maybe>; sc: Maybe; renderRef: Maybe; flags: BitFlags; children: Maybe; /** Position in `parent.children`. Maintained by the reconciler so the * renderer can find the next-sibling insertion anchor without an O(n) * `indexOf` scan. -1 means "not yet placed by a reconcile pass". */ pos: number; keyToView: Maybe>; unsubscribe: Maybe<(() => void)[]>; parent: Maybe; /** The primitive whose .children contains the live sc items after reconcile. */ scHost: Maybe; /** * Last value the viewFn passed to `ctx.ref(...)`. Stored so the engine * can re-apply it when the consumer's `ref` prop changes between renders. */ publicRef: Maybe; }; /** Structural change: viewFn, key, or count differs. Does NOT check props. */ export declare function hasScStructuralChange(prev: Maybe, next: Maybe): boolean;