import type { HTTPRequest, HTTPResponse, Scheme, SchemeCheck, ModuleOptions, Route } from "../../types"; import type { NuxtApp } from "nuxt/app"; import { Storage } from "./storage"; export declare type ErrorListener = (...args: any[]) => void; export declare type RedirectListener = (to: string, from: string) => string; export declare class Auth { #private; ctx: NuxtApp; options: ModuleOptions; strategies: Record; error: Error | undefined; $storage: Storage; $state: { strategy: string; user: Record | null; loggedIn: boolean; }; constructor(ctx: NuxtApp, options: ModuleOptions); getStrategy(throwException?: boolean): Scheme; get strategy(): Scheme; get user(): Record | null; get loggedIn(): boolean; get busy(): boolean; init(): Promise; registerStrategy(name: string, strategy: Scheme): void; setStrategy(name: string): Promise; mounted(...args: any[]): Promise; loginWith(name: string, ...args: any[]): Promise; login(...args: any[]): Promise; fetchUser(...args: any[]): Promise; logout(...args: any[]): Promise; setUserToken(token: string | boolean, refreshToken?: string | boolean): Promise; reset(...args: any[]): void; refreshTokens(): Promise; check(...args: any[]): SchemeCheck; fetchUserOnce(...args: any[]): Promise; setUser(user: any): void; request(endpoint: HTTPRequest, defaults?: HTTPRequest): Promise; requestWith(endpoint?: HTTPRequest, defaults?: HTTPRequest): Promise; wrapLogin(promise: Promise): Promise; onError(listener: ErrorListener): void; callOnError(error: Error, payload?: {}): void; /** * * @param name redirect name * @param route (default: false) Internal useRoute() (false) or manually specify * @param router (default: true) Whether to use nuxt redirect (true) or window redirect (false) * * @returns */ redirect(name: string, route?: Route | false, router?: boolean): void; onRedirect(listener: RedirectListener): void; callOnRedirect(to: string, from: string): string; hasScope(scope: string): boolean; }