Import
import { Versioned } from "@typed/fx/Versioned";Access Versioned.Service through the imported Versioned export. Its declaration below describes the member.
Signatures
interface Service<Self, Id extends string, E1, A2, E2, A3, E3> extends Versioned<Self, E1, A2, E2, Self, A3, E3, Self> {
readonly id: Id;
readonly service: Context.Service<Self, Versioned<never, E1, A2, E2, never, A3, E3, never>>;
readonly make: <R1 = never, R2 = never, R3 = never>(version: Effect.Effect<number, E1, R1>, fx: Fx.Fx<A2, E2, R2>, effect: Effect.Effect<A3, E3, R3>) => Layer.Layer<Self, never, Exclude<R1 | R2 | R3, Scope.Scope>>;
}Why
Creates an Effect service tag that exposes current reads, pushed updates, and versions through one Layer-provided state dependency.
Ownership and lifetime
Service is a contract and performs no acquisition. Implementations retain the errors, services, interruption, and Scope requirements expressed by its members.
Property: id
Exposes id on the versioned contract.
Property: id: Why
Retains the literal service identifier for tooling, diagnostics, and Layer composition.
Property: id: Ownership and lifetime
id does not own its inputs. Observation and current reads retain upstream lifetime, typed failures, services, and interruption behavior.
Property: make
Exposes make on the versioned contract.
Property: make: Why
Builds one Versioned value from independently typed version, update, and current-value channels instead of forcing them into one error or environment type.
Property: make: Ownership and lifetime
Construction is lazy with respect to the Fx channel. Current reads share in-flight work until interrupt is run; each component retains its declared errors and services.
Property: service
Exposes service on the versioned contract.
Property: service: Why
Exposes the underlying Effect Context service used by the generated Versioned class.
Property: service: Ownership and lifetime
service does not own its inputs. Observation and current reads retain upstream lifetime, typed failures, services, and interruption behavior.
Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.