# ComposedRef

Ref callback produced by combining two compatible element refs.

## Signatures

```ts
export type ComposedRef<First, Second> = ((element: RefTarget<First> & RefTarget<Second>) => Effect.Effect<void, RefError<First> | RefError<Second>, RefServices<First> | RefServices<Second>>) & HydrationProtocol<First> & HydrationProtocol<Second>;
```

## Why

User and component refs can observe the exact same DOM element without one
overwriting the other, while their error/service channels remain visible.

## Ownership and lifetime

The callback sequences both refs inside the element's rendering Scope. At
most one input may carry `HydrationRef` ownership; that protocol is retained
on the composed callback.
