import { ActivatedRouteSnapshot, Data, MaybeAsync, RedirectCommand, Route as NgRoute, RouterStateSnapshot, UrlTree } from '@angular/router'; import { ClaimCriteria } from '@bootkit/angular/security'; import { Observable } from 'rxjs'; export type ClaimPreCheckPolicy = 'always' | 'once'; export interface RouteGuard { /** Guard precheck step */ preCheck?: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => void | undefined | Observable; preCheckPolicy?: ClaimPreCheckPolicy; claim?: ClaimCriteria; redirect?: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => MaybeAsync; } /** Route data */ export interface RouteData extends Data { } export interface Route extends NgRoute { children?: Routes; guard?: RouteGuard; } export type Routes = Route[]; /** Router activated route */ /** Router navigation event */ /** Router Utils Configuration */ /** Router Utils Configuration Token */