import { EnvironmentId } from "@t3tools/contracts"; import { RelayManagedEndpoint } from "@t3tools/contracts/relay"; import * as Context from "effect/Context"; import type * as Effect from "effect/Effect"; import type * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import type { ConnectionAttemptError } from "../connection/model.ts"; export class RemoteDpopAccessToken extends Schema.Class( "@t3tools/client-runtime/authorization/RemoteDpopAccessToken", )({ environmentId: EnvironmentId, label: Schema.String, endpoint: RelayManagedEndpoint, accessToken: Schema.String, expiresAtEpochMs: Schema.Number, dpopThumbprint: Schema.String, }) {} export class RemoteDpopAccessTokenStore extends Context.Service< RemoteDpopAccessTokenStore, { readonly get: ( environmentId: EnvironmentId, ) => Effect.Effect, ConnectionAttemptError>; readonly put: (token: RemoteDpopAccessToken) => Effect.Effect; readonly remove: (environmentId: EnvironmentId) => Effect.Effect; } >()("@t3tools/client-runtime/authorization/tokenStore/RemoteDpopAccessTokenStore") {}