import * as Context from "effect/Context"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; export const ApnsEnvironment = Schema.Literals(["sandbox", "production"]); export type ApnsEnvironment = typeof ApnsEnvironment.Type; export interface ApnsCredentials { readonly teamId: string; readonly keyId: string; readonly privateKey: Redacted.Redacted; readonly bundleId: string; readonly environment: ApnsEnvironment; } export interface RelayConfigurationShape { readonly relayIssuer: string; readonly apns: ApnsCredentials; readonly clerkSecretKey: Redacted.Redacted; readonly clerkPublishableKey: string; readonly clerkJwtAudience: string; readonly apnsDeliveryJobSigningSecret: Redacted.Redacted; readonly cloudMintPrivateKey: Redacted.Redacted; readonly cloudMintPublicKey: string; readonly managedEndpointBaseDomain: string | undefined; readonly managedEndpointNamespace: string | undefined; } export class RelayConfiguration extends Context.Service< RelayConfiguration, RelayConfigurationShape >()("t3code-relay/Config/RelayConfiguration") {}