import { OAuth2Tokens } from '@docyrus/api-client'; import { D as DocyrusAuthConfig } from '../types-BcLDyMdw.js'; export { A as AclOperation, a as AclTargetType, b as AdaptiveCard, c as AuthMode, d as AuthSessionResult, e as AuthStatus, f as DocyrusAclRule, g as DocyrusAuthContextValue, h as DocyrusCalendarEventPayload, i as DocyrusEmailPayload, j as DocyrusPermission, k as DocyrusRole, l as DocyrusShareAdaptiveCardPayload, m as DocyrusSharePayload, n as DocyrusShareTextPayload, o as DocyrusUser, M as MsGraphAccount, p as MsGraphClient, q as MsGraphRequest, r as MsGraphRequestOptions, s as MsGraphResponse, t as MsGraphStatus, O as OpenAuthSessionFn, P as PermissionConfig, u as PermissionScope } from '../types-BcLDyMdw.js'; export { D as DocyrusAuthContext, a as DocyrusAuthProvider, b as DocyrusAuthProviderProps, u as useDocyrusAuth, c as useDocyrusClient } from '../use-docyrus-client-C9uiHma9.js'; export { A as AuthManager, D as DEFAULT_API_URL, a as DEFAULT_OAUTH_SCOPES, g as getAllRoles, b as getAllowedOperations, h as hasPermission, c as hasRole } from '../constants-C9ezX9zG.js'; import 'react'; /** * React Native OAuth2 authorization code flow with PKCE. * * Instead of browser redirects (`window.location.href`), this class uses * an injected `openAuthSession` function (e.g., expo-web-browser's * `WebBrowser.openAuthSessionAsync`) that opens an in-app browser, * waits for the callback, and returns the callback URL directly. * * No DOM, no localStorage, no window.location — fully RN compatible. */ declare class ReactNativeOAuth2Auth { private oauth2Client; private storage; private openAuthSession; private redirectUri; constructor(config: DocyrusAuthConfig); /** * Initiate login by opening an in-app browser for OAuth2 authorization. * Unlike the browser version, this does NOT navigate the app — it opens * a modal browser and waits for the callback URL. */ initiateLogin(): Promise; /** Get currently stored tokens. */ getStoredTokens(): Promise; /** Persist externally obtained tokens for immediate authenticated use. */ setTokens(tokens: OAuth2Tokens): Promise; /** Check if the stored token is expired (with 60s buffer). */ isTokenExpired(): Promise; /** Refresh the access token using the stored refresh token. */ refreshToken(): Promise; /** Get a valid access token, refreshing if needed. */ getValidAccessToken(): Promise; /** Logout: revoke token and clear storage. */ logout(): Promise; } export { DocyrusAuthConfig, ReactNativeOAuth2Auth };