import type * as _1 from '@descope/core-js-sdk'; import type { UserResponse } from '@descope/web-js-sdk'; import createSdk from '@descope/web-js-sdk'; import { Observable } from 'rxjs'; import { Observablefied } from '../utils/helpers'; import { DescopeAuthConfig } from '../types/types'; import * as i0 from "@angular/core"; type DescopeSDK = ReturnType; type AngularDescopeSDK = Observablefied; export interface DescopeSession { isAuthenticated: boolean; isSessionLoading: boolean; sessionToken: string | null; claims?: Record; } export type DescopeUser = { user?: UserResponse | null; isUserLoading: boolean; }; export declare class DescopeAuthService { descopeSdk: AngularDescopeSDK; private readonly sessionSubject; private readonly userSubject; readonly session$: Observable; readonly user$: Observable; constructor(config: DescopeAuthConfig); refreshSession(tryRefresh?: boolean): Observable<_1.SdkResponse<_1.JWTResponse>>; refreshUser(): Observable<_1.SdkResponse<_1.UserResponse>>; getSessionToken(): string | null; getRefreshToken(): string | null; isSessionTokenExpired(token?: string | null): boolean; isRefreshTokenExpired(token?: string | null): boolean; getJwtPermissions(token?: string | null, tenant?: string): string[]; getJwtRoles(token?: string | null, tenant?: string): string[]; isAuthenticated(): boolean; setSession(sessionToken: string | null): void; setIsAuthenticated(isAuthenticated: boolean): void; setUser(user: UserResponse | null): void; setClaims(claims?: DescopeSession['claims']): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export {};