import * as vue from 'vue'; import { PropType } from 'vue'; import { OAuth2TokenStorage, OAuth2Tokens, RestApiClient } from '@docyrus/api-client'; import { c as AuthMode, e as AuthStatus, H as HostNavigationHandler, v as HostNotificationHandler, R as RouteChangePayload, w as HostNavigationRequestOptions, m as DocyrusSharePayload, i as DocyrusEmailPayload, h as DocyrusCalendarEventPayload, p as MsGraphClient } from '../types-BcLDyMdw.js'; export { b as AdaptiveCard, D as DocyrusAuthConfig, l as DocyrusShareAdaptiveCardPayload, n as DocyrusShareTextPayload, M as MsGraphAccount, q as MsGraphRequest, r as MsGraphRequestOptions, s as MsGraphResponse, t as MsGraphStatus } from '../types-BcLDyMdw.js'; interface DocyrusAuthState { status: AuthStatus; mode: AuthMode | null; tokens: OAuth2Tokens | null; client: RestApiClient | null; error: Error | null; signIn: () => void; signInWithTokens: (tokens: OAuth2Tokens) => Promise; getAuthorizationUrl: () => Promise; signOut: () => Promise; onHostNavigation: (handler: HostNavigationHandler) => () => void; onHostNotification: (handler: HostNotificationHandler) => () => void; enableHostRouteSync: () => void; notifyRouteChange: (payload?: RouteChangePayload) => void; requestHostNavigation: (url: string, options?: HostNavigationRequestOptions) => void; sendToDocy: (payload: DocyrusSharePayload) => Promise; sendToChat: (payload: DocyrusSharePayload) => Promise; sendToEmail: (payload: DocyrusEmailPayload) => Promise; sendToCalendar: (payload: DocyrusCalendarEventPayload) => Promise; msGraph: MsGraphClient | null; } /** * Vue composable to access Docyrus auth state. * Must be used within a ``. * * Returns: { status, mode, tokens, signIn, signInWithTokens, signOut, client, error } */ declare function getDocyrusAuth(): DocyrusAuthState; /** @deprecated Use `getDocyrusAuth()` instead. */ declare const useDocyrusAuth: typeof getDocyrusAuth; /** * Vue composable to get the pre-configured RestApiClient. * Returns a computed ref that is null when not authenticated. */ declare function getDocyrusClient(): vue.ComputedRef; /** @deprecated Use `getDocyrusClient()` instead. */ declare const useDocyrusClient: typeof getDocyrusClient; /** * Vue provider component that wraps your app with Docyrus auth context. * * Usage: * ```vue * * * * ``` */ declare const DocyrusAuthProvider: vue.DefineComponent; default: undefined; }; redirectUri: { type: StringConstructor; default: undefined; }; callbackPath: { type: StringConstructor; default: undefined; }; allowedHostOrigins: { type: PropType; default: undefined; }; storageKeyPrefix: { type: StringConstructor; default: undefined; }; tokenStorage: { type: PropType; default: undefined; }; forceMode: { type: PropType; default: undefined; }; initialTokens: { type: PropType; default: undefined; }; syncRouteToHost: { type: BooleanConstructor; default: boolean; }; }>, () => vue.VNode[] | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly; default: undefined; }; redirectUri: { type: StringConstructor; default: undefined; }; callbackPath: { type: StringConstructor; default: undefined; }; allowedHostOrigins: { type: PropType; default: undefined; }; storageKeyPrefix: { type: StringConstructor; default: undefined; }; tokenStorage: { type: PropType; default: undefined; }; forceMode: { type: PropType; default: undefined; }; initialTokens: { type: PropType; default: undefined; }; syncRouteToHost: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { clientId: string; apiUrl: string; scopes: string[]; redirectUri: string; callbackPath: string; allowedHostOrigins: string[]; storageKeyPrefix: string; tokenStorage: OAuth2TokenStorage; forceMode: AuthMode; initialTokens: OAuth2Tokens; syncRouteToHost: boolean; }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>; /** * "Sign in with Docyrus" button component. * * In iframe mode: renders nothing (auth is handled by the host). * When authenticated: renders nothing. * * Default look: [Logo] label — or — [Spinner] label (when loading). * Use class or the scoped slot for full customization. * * Usage: * ```vue * * * * * * ``` */ declare const SignInButton: vue.DefineComponent, () => vue.VNode | vue.VNode[] | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly> & Readonly<{}>, { label: string; disabled: boolean; }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>; export { AuthMode, AuthStatus, DocyrusAuthProvider, type DocyrusAuthState, DocyrusCalendarEventPayload, DocyrusEmailPayload, DocyrusSharePayload, MsGraphClient, SignInButton, getDocyrusAuth, getDocyrusClient, useDocyrusAuth, useDocyrusClient };