import * as _nuxt_schema from '@nuxt/schema'; import { HookResult } from '@nuxt/schema'; import { BrowserOAuthClient, OAuthSession } from '@atproto/oauth-client-browser'; import { Ref } from 'vue'; type AtprotoSessionStatus = 'initializing' | 'ready' | 'anonymous' | 'authenticated' interface AtprotoContext { client: BrowserOAuthClient session: Ref status: Ref } declare module '#app' { interface NuxtApp { $atproto: AtprotoContext } interface RuntimeNuxtHooks { 'atproto:sessionCreated': (did: string) => HookResult 'atproto:sessionRestored': (did: string) => HookResult 'atproto:sessionDeleted': (did: string) => HookResult } } declare module 'vue' { interface ComponentCustomProperties { $atproto: AtprotoContext } } declare module 'nuxt/schema' { /** * Copied to `runtimeConfig.public.atproto` at build time. * OAuth client metadata and endpoints are exposed to the client bundle by design. */ interface PublicRuntimeConfig { atproto: AtprotoNuxtOptions } } interface AtprotoNuxtOptions { serviceEndpoint: { private: string public: string } oauth: { /** * When true, writes `public/client-metadata.json` from `oauth.clientMetadata.local` during module setup. * @default false */ writeClientMetadata?: boolean clientMetadata: { remote?: string local?: { client_id: string client_name: string client_uri: string logo_uri: string tos_uri: string policy_uri: string redirect_uris: string[] scope: string grant_types: Array response_types: Array token_endpoint_auth_method: string application_type: string dpop_bound_access_tokens: boolean } } signInOptions: AtprotoSignInOptions } debug: boolean } interface AtprotoSignInOptions { state: string prompt: 'login' | 'consent' scope: string ui_locales: string } declare const _default: _nuxt_schema.NuxtModule; export { _default as default };