# Sink.Class

Constructor-shaped Context service returned by `Sink.Service`.

## Signatures

```ts
interface Class<Self, Id extends string, A, E> extends Service<Self, Id, A, E> {
    new (): Service<Self, Id, A, E>;
}
```

## Why

A class-shaped tag supports standard Effect service declaration syntax while exposing the Sink
callbacks directly as static operations.

## Ownership and lifetime

Constructing the class returns its service tag; the providing Layer owns the concrete sink.

## Construct signatures

Returns the service tag rather than allocating a separate sink instance.

## Construct signatures: Why

This supports Effect's class declaration syntax while keeping one service identity.

## Construct signatures: Ownership and lifetime

Construction allocates no consumer resources; the provided Layer owns the concrete sink.

## Examples

```ts
import * as Sink from "@typed/fx/Sink"
class Numbers extends Sink.Service<Numbers, number>()("Numbers") {}
```
