import { BehaviorSubject, Observable, Subject } from "rxjs"; import { ApiService, Response } from "@adjai/ngx-library/src/lib/api"; import { Router } from "@angular/router"; import { SystemLoaderService } from "@adjai/ngx-library/src/lib/elements"; import { MessageService } from "@adjai/ngx-library/src/lib/message"; import { AuthConfiguration } from "./auth-configuration"; import * as i0 from "@angular/core"; export declare enum RegistrationFormFieldTypes { input = 0, text = 1, select = 2, hidden = 3 } export interface RegistrationFormField { name: string; label: string; type: RegistrationFormFieldTypes; required?: boolean; options?: string[]; value?: string; } export interface UserRegisterInfo { name: string; email: string; password: string; roles: string[]; network?: string; network_user_id?: string; meta?: { [key: string]: string; }; } export interface User { id: number | null; email: string; name?: string; roles: string[]; deleted_time: null | string; blocked_time: null | string; registration_incomplete?: boolean; } export interface AuthResponse { token: string; refreshToken: string; tokenExpire: number; user: User; } export declare class AuthService { private apiService; private router; configuration: AuthConfiguration; private systemLoaderService; private messageService; refreshTokenNotFound$: Subject; sessionChanged$: BehaviorSubject; constructor(apiService: ApiService, router: Router, configuration: AuthConfiguration, systemLoaderService: SystemLoaderService, messageService: MessageService); goHome(): void; auth$(email: string, password: string): Observable; register$(userRegisterInfo: UserRegisterInfo): Observable; logout(): void; saveSession(response: AuthResponse): void; updateSessionSection(name: string, value: string): void; clearSession(): void; isLoggedIn(): boolean; getToken(): string | null; getRefreshToken(): string | null; getSession(name?: string, defaultValue?: null): string | null; getFullSession(): AuthResponse | null; refreshToken$(): Observable; getUser(): null | User; getUserId(): number | null; hasAllRoles(roles: string[]): boolean; hasAnyRole(roles: string[]): boolean; hasRole(role: string): boolean; getFirstRole(): string | null; requestResetPassword$(email: string): Observable; resetPassword$(password: string, code: string, userId: number, errorCallback: (response: Response) => void): Observable; activate$(id: number, activationCode: string, errorCallback?: null | ((response: Response) => void)): Observable; checkResetPassword$(params: any, callback: (response: Response) => void): Observable>; goAuthPage(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }