import type { ICloudbase, ICloudbaseConfig } from '@cloudbase/types'; import type { ICloudbaseCache } from '@cloudbase/types/cache'; import type { ICloudbaseRequest } from '@cloudbase/types/request'; import type { ICloudbaseAuthConfig, IUser, ILoginState } from '@cloudbase/types/auth'; import type { AuthOptions, Credentials } from '@cloudbase/oauth'; import { CloudbaseOAuth, AuthError, authModels } from '@cloudbase/oauth'; import { AuthV1Compat, WeixinAuthProvider, CustomAuthProvider, AnonymousAuthProvider } from './v1-compat'; import { CommonRes, DeleteMeReq, GetClaimsRes, GetUserIdentitiesRes, GetUserRes, LinkIdentityReq, LinkIdentityRes, OnAuthStateChangeCallback, ReauthenticateRes, ResendReq, ResendRes, ResetPasswordForEmailRes, ResetPasswordForOldReq, SetSessionReq, SignInAnonymouslyReq, SignInOAuthRes, SignInRes, SignInWithIdTokenReq, SignInWithOAuthReq, SignInWithOtpReq, SignInWithOtpRes, SignInWithPasswordReq, SignUpRes, UnlinkIdentityReq, UpdateUserReq, UpdateUserWithVerificationRes, VerifyOAuthReq, VerifyOAuthRes, VerifyOtpReq } from './type'; export type { SignInRes, GetUserRes, CommonRes, SignInWithOtpRes, SignInOAuthRes, GetClaimsRes, ResetPasswordForEmailRes, GetUserIdentitiesRes, LinkIdentityRes, ReauthenticateRes, ResendRes, UpdateUserWithVerificationRes, OnAuthStateChangeCallback, SignInWithPasswordReq, SignInWithIdTokenReq, SignInWithOAuthReq, VerifyOAuthReq, VerifyOtpReq, LinkIdentityReq, UnlinkIdentityReq, UpdateUserReq, SignInWithOtpReq, ResetPasswordForOldReq, ResendReq, SetSessionReq, DeleteMeReq, SignUpRes, } from './type'; interface UserInfo { uid?: string; gender?: string; picture?: string; email?: string; email_verified?: boolean; phone_number?: string; username?: string; name?: string; birthdate?: string; zoneinfo?: string; locale?: string; sub?: string; created_from?: string; } interface IUserOptions { cache: ICloudbaseCache; oauthInstance: CloudbaseOAuth; } export declare class User implements IUser { uid?: string; gender?: string; picture?: string; email?: string; emailVerified?: boolean; phoneNumber?: string; username?: string; name?: string; providers?: { id?: string; providerUserId?: string; name?: string; }[]; birthdate?: string; zoneinfo?: string; locale?: string; sub?: string; createdFrom?: string; private cache; private oauthInstance; constructor(options: IUserOptions); checkLocalInfo(): Promise; checkLocalInfoAsync(): Promise; update(userInfo: authModels.UserProfile): Promise; updateUserBasicInfo(params: authModels.ModifyUserBasicInfoRequest): Promise; updatePassword(newPassword: string, oldPassword: string): Promise; updateUsername(username: string): Promise; refresh(params?: { version?: string; query?: any; }): Promise; getLocalUserInfo(key?: string): string | boolean | Record; setLocalUserInfo(userInfo: any): void; private getLocalUserInfoAsync; private setUserInfo; } interface ILoginStateOptions extends IUserOptions { envId: string; } export declare class LoginState implements ILoginState { user: User; oauthLoginState: any; private oauthInstance; private cache; constructor(options: ILoginStateOptions); checkLocalState(): void; checkLocalStateAsync(): Promise; } interface IAuthConfig extends ICloudbaseAuthConfig { cache: ICloudbaseCache; request?: ICloudbaseRequest; runtime?: string; } declare class Auth extends AuthV1Compat { readonly config: IAuthConfig; oauthInstance: CloudbaseOAuth; readonly cache: ICloudbaseCache; private listeners; private hasListenerSetUp; constructor(config: IAuthConfig); signInAnonymously(params: SignInAnonymouslyReq): Promise; signUp(params: authModels.SignUpRequest & { phone?: string; }): Promise; signOut(params?: authModels.SignoutRequest): Promise; onAuthStateChange(callback: OnAuthStateChangeCallback): { data: { subscription: { id: string; callback: OnAuthStateChangeCallback; unsubscribe: () => void; }; }; }; signInWithPassword(params: SignInWithPasswordReq): Promise; signInWithIdToken(params: SignInWithIdTokenReq): Promise; signInWithOtp(params: SignInWithOtpReq): Promise; verifyOAuth(params?: VerifyOAuthReq): Promise; signInWithOAuth(params: SignInWithOAuthReq): Promise; getClaims(): Promise; resetPasswordForEmail(emailOrPhone: string, options?: { redirectTo?: string; }): Promise; resetPasswordForOld(params: ResetPasswordForOldReq): Promise<{ data: { user: import("./type").User; session: import("./type").Session; }; error: any; } | { data: { user?: undefined; session?: undefined; }; error: AuthError; }>; verifyOtp(params: VerifyOtpReq): Promise; getSession(): Promise; refreshSession(refresh_token?: string): Promise; getUser(isRefresh?: boolean): Promise; refreshUser(): Promise; updateUser(params: UpdateUserReq): Promise; getUserIdentities(): Promise; linkIdentity(params: LinkIdentityReq): Promise; unlinkIdentity(params: UnlinkIdentityReq): Promise; reauthenticate(): Promise; resend(params: ResendReq): Promise; setSession(params: SetSessionReq): Promise; exchangeCodeForSession(): Promise; deleteUser(params: DeleteMeReq): Promise; toDefaultLoginPage(params?: authModels.ToDefaultLoginPage): Promise; signInWithCustomTicket(getTickFn?: authModels.GetCustomSignTicketFn): Promise; signInWithOpenId({ useWxCloud }?: { useWxCloud?: boolean; }): Promise; signInWithPhoneAuth({ phoneCode, useWxCloud }: { phoneCode?: string; useWxCloud?: boolean; }): Promise; bindPhoneNumber(params: authModels.BindPhoneRequest): Promise; unbindProvider(params: authModels.UnbindProviderRequest): Promise; bindEmail(params: authModels.BindEmailRequest): Promise; verify(params: authModels.VerifyRequest): Promise; getVerification(params: authModels.GetVerificationRequest, options?: { withCaptcha: boolean; }): Promise; get currentUser(): User; getCurrentUser(isRefresh?: boolean): Promise<(authModels.UserInfo & Partial) | null>; signInAnonymouslyInWx({ useWxCloud, }?: { useWxCloud?: boolean; }): Promise; bindOpenId(): Promise; signInWithUnionId(): Promise; signInWithSms({ verificationInfo, verificationCode, phoneNum, bindInfo, }: { verificationInfo?: { verification_id: string; is_user: boolean; }; verificationCode?: string; phoneNum?: string; bindInfo?: any; }): Promise; signInWithEmail({ verificationInfo, verificationCode, bindInfo, email, }: { verificationInfo?: { verification_id: string; is_user: boolean; }; verificationCode?: string; bindInfo?: any; email?: string; }): Promise; setCustomSignFunc(getTickFn: authModels.GetCustomSignTicketFn): void; signIn(params: authModels.SignInRequest): Promise; setPassword(params: authModels.SetPasswordRequest): Promise; isUsernameRegistered(username: string): Promise; hasLoginState(): LoginState | null; getLoginState(): Promise; getUserInfo(): Promise<(authModels.UserInfo & Partial) | null>; getWedaUserInfo(): Promise; updateUserBasicInfo(params: authModels.ModifyUserBasicInfoRequest): Promise; getAuthHeader(): {}; bindWithProvider(params: authModels.BindWithProviderRequest): Promise; queryUser(queryObj: authModels.QueryUserProfileRequest): Promise; getAccessToken(): Promise<{ accessToken: string; env: string; }>; grantProviderToken(params: authModels.GrantProviderTokenRequest): Promise; patchProviderToken(params: authModels.PatchProviderTokenRequest): Promise; signInWithProvider(params: authModels.SignInWithProviderRequest): Promise; signInWithWechat(params?: any): Promise; grantToken(params: authModels.GrantTokenRequest): Promise; genProviderRedirectUri(params: authModels.GenProviderRedirectUriRequest): Promise; resetPassword(params: authModels.ResetPasswordRequest): Promise; deviceAuthorize(params: authModels.DeviceAuthorizeRequest): Promise; sudo(params: authModels.SudoRequest): Promise; deleteMe(params: authModels.WithSudoRequest): Promise; getProviders(): Promise; loginScope(): Promise; loginGroups(): Promise; onLoginStateChanged(callback: Function): Promise; refreshTokenForce(params: { version?: string; }): Promise; getCredentials(): Promise; setCredentials(credentials: Credentials): Promise; getProviderSubType(): Promise; createCaptchaData(params: { state: string; redirect_uri?: string; }): Promise<{ token: string; data: string; }>; verifyCaptchaData(params: { token: string; key: string; }): Promise<{ captcha_token: string; expires_in: number; }>; getMiniProgramQrCode(params: authModels.GetMiniProgramQrCodeRequest): Promise; getMiniProgramQrCodeStatus(params: authModels.GetMiniProgramQrCodeStatusRequest): Promise; modifyPassword(params: authModels.ModifyUserBasicInfoRequest): Promise; modifyPasswordWithoutLogin(params: authModels.ModifyPasswordWithoutLoginRequest): Promise; getUserBehaviorLog(params: authModels.GetUserBehaviorLog): Promise; signInWithUsername({ verificationInfo, verificationCode, username: rawUsername, bindInfo, loginType, }: { verificationInfo?: authModels.GetVerificationResponse; verificationCode?: string; username?: string; bindInfo?: any; loginType?: string; }): Promise; createLoginState(params?: { version?: string; query?: any; }, options?: { asyncRefreshUser?: boolean; userInfo?: any; }): Promise; setAccessKey(): Promise; protected formatPhone(phone: string): string; private notifyListeners; private setupListeners; private convertToUser; private validateParams; private validateAtLeastOne; private init; } type TInitAuthOptions = Pick & Partial & { detectSessionInUrl?: boolean; }; export declare function generateAuthInstance(config: TInitAuthOptions & { sdkVersion?: string; }, options?: { clientId: ICloudbaseConfig['clientId']; env: ICloudbaseConfig['env']; apiOrigin: string; cache?: ICloudbaseCache; platform?: ICloudbase['platform']; app?: ICloudbase; debug?: ICloudbaseAuthConfig['debug']; detectSessionInUrl?: ICloudbaseAuthConfig['detectSessionInUrl']; }): { authInstance: Auth; oauthInstance: CloudbaseOAuth; }; export { UserInfo, Auth, WeixinAuthProvider, CustomAuthProvider, AnonymousAuthProvider }; export { AuthErrorCategory, AuthError } from '@cloudbase/oauth'; export declare function registerAuth(app: Pick): void;