# provide

Provides context to a Versioned value.

## Signatures

```ts
export declare const provide: <R0, E0, A, E, R, B, E2, R2, R3 = never, S = never>(versioned: Versioned<R0, E0, A, E, R, B, E2, R2>, layer: Layer.Layer<S, never, R3>) => Versioned<R3 | Exclude<R0, S>, E0, A, E, R3 | Exclude<R, S>, B, E2, R3 | Exclude<R2, S>>;
```

## Why

Supplies one Layer to all three Versioned channels so service elimination is consistent for
version reads, pushed updates, and current reads.

## Ownership and lifetime

provide does not take ownership of its inputs. Its observation and current-read channels retain
upstream lifetime, typed failures, services, and interruption behavior.
