Import
import { Guard } from "@typed/guard";Access Guard.Services through the imported Guard export. Its declaration below describes the member.
Signatures
type Services<T> = [
T
] extends [
Guard<infer _I, infer _O, infer _E, infer R>
] ? R : [
T
] extends [
AsGuard<infer _I, infer _O, infer _E, infer R>
] ? R : never;Why
Service extraction makes environment composition visible in combinator signatures.
Ownership and lifetime
This compile-time type acquires no resources; service lifetime is governed by the resulting Effect or Layer.
Examples
import type { Guard } from "@typed/guard"
type Services = Guard.Services<Guard<string, number, never, { readonly Db: unique symbol }>>Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.