import type { ReadonlyObservable } from "@usels/core"; /** * A value that resolves to an EventTarget (or subtype), or null/undefined. * * Accepted forms: * - `Ref$` — React callback ref; structurally matches `ReadonlyObservable` * - `ReadonlyObservable` / `Observable` — any Legend-State observable * - `T` — raw EventTarget subtype (Element, Document, Window, etc.) * - `null` / `undefined` — no-op * * Resolved via `get(v)` / `peek(v)` from `@usels/core`. * Returns `T | null | undefined` with no `any` leak. * * Note: `OpaqueObservable` is not in the explicit union. * If passing one directly, cast: `obs as unknown as MaybeEventTarget`. */ export type MaybeEventTarget = | ReadonlyObservable | T | null | undefined;