import type { EndpointsOption, SchemePartialOptions, TokenableSchemeOptions, TokenableScheme, UserOptions, HTTPRequest, HTTPResponse, SchemeCheck } from "../../types"; import type { Auth } from ".."; import { Token, RequestHandler } from "../inc"; import { BaseScheme } from "./base"; export interface LocalSchemeEndpoints extends EndpointsOption { login: HTTPRequest; logout: HTTPRequest | false; user: HTTPRequest | false; } export interface LocalSchemeOptions extends TokenableSchemeOptions { endpoints: LocalSchemeEndpoints; user: UserOptions; clientId: string | false; grantType: string | false; scope: string[] | false; } export declare class LocalScheme extends BaseScheme implements TokenableScheme { token: Token; requestHandler: RequestHandler; constructor($auth: Auth, options: SchemePartialOptions, ...defaults: SchemePartialOptions[]); check(checkStatus?: boolean): SchemeCheck; mounted({ tokenCallback, refreshTokenCallback }?: { tokenCallback?: () => void; refreshTokenCallback?: any; }): Promise; login(endpoint: HTTPRequest, { reset }?: { reset?: boolean; }): Promise; setUserToken(token: string): Promise; fetchUser(endpoint?: HTTPRequest): Promise; logout(endpoint?: HTTPRequest): Promise; reset({ resetInterceptor }?: { resetInterceptor?: boolean; }): void; protected updateTokens(response: HTTPResponse): void; protected initializeRequestInterceptor(): void; }