import * as i0 from '@angular/core'; import { Signal, InjectionToken } from '@angular/core'; import * as _angular_router from '@angular/router'; import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { MaybeAsync } from '@sdcorejs/utils/models'; import { Observable } from 'rxjs'; interface SdAuthInfo { id?: string; username?: string; firstName?: string; lastName?: string; email?: string; data?: T; } declare class SdAuthService { #private; getAuthInfo?: Signal; signout$?: Observable; changePassword$?: Observable; private readonly authConfiguration; constructor(); signout: () => void; changePassword: () => void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface ISdAuthConfiguration { action?: IAuthConfigurationAction; guard?: IAuthConfigurationGuard; } declare const SD_AUTH_CONFIGURATION: InjectionToken; interface IAuthConfigurationAction { signout: () => MaybeAsync; changePassword?: () => MaybeAsync; } interface IAuthConfigurationGuard { auth?: CanActivate['canActivate']; portal?: CanActivate['canActivate']; authInfo: () => MaybeAsync; } declare class SdAuthGuard implements CanActivate { private readonly authConfiguration; protected readonly router: Router; canActivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => _angular_router.MaybeAsync<_angular_router.GuardResult>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class SdPortalGuard implements CanActivate { private readonly authConfiguration; protected readonly router: Router; canActivate: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => _angular_router.MaybeAsync<_angular_router.GuardResult>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export { SD_AUTH_CONFIGURATION, SdAuthGuard, SdAuthService, SdPortalGuard }; export type { ISdAuthConfiguration, SdAuthInfo };