import { CrossmintAuth, CrossmintAuthOptions, AuthMaterialWithUser, OAuthProvider } from '@crossmint/common-sdk-auth'; import { Crossmint, CrossmintApiClient } from '@crossmint/common-sdk-base'; import { StorageProvider } from './utils/storage.js'; type CrossmintAuthClientConfig = CrossmintAuthOptions & { callbacks?: CrossmintAuthClientCallbacks; logoutRoute?: string; storageProvider?: StorageProvider; }; declare class CrossmintAuthClient extends CrossmintAuth { private callbacks; private refreshTask; private refreshPromise; private logoutRoute; private storageProvider; protected constructor(crossmint: Crossmint, apiClient: CrossmintApiClient, config?: CrossmintAuthClientConfig); static from(crossmint: Crossmint, config?: CrossmintAuthClientConfig): CrossmintAuthClient; getUser(): Promise; storeAuthMaterial(authMaterial: AuthMaterialWithUser): Promise; logout(knownRefreshToken?: string): Promise; handleRefreshAuthMaterial(refreshTokenSecret?: string): Promise; getOAuthUrl(provider: OAuthProvider, options?: { appSchema?: string; }): Promise; sendEmailOtp(email: string): Promise; confirmEmailOtp(email: string, emailId: string, token: string): Promise; signInWithSmartWallet(address: string, type: "evm" | "solana"): Promise; authenticateSmartWallet(address: string, type: "evm" | "solana", signature: string): Promise; private logoutFromCustomRoute; private scheduleNextRefresh; private cancelScheduledRefresh; } type CrossmintAuthClientCallbacks = { onTokenRefresh?: (authMaterial: AuthMaterialWithUser) => void; onLogout?: () => void; }; export { CrossmintAuthClient, type CrossmintAuthClientConfig };