import { CanActivateFn } from '@angular/router'; /** * Guard que verifica si el usuario está autenticado. * Redirige a loginRoute si no está autenticado. * * Preserva la URL solicitada en el query param `returnUrl` para que la * página de login pueda devolver al usuario a su destino tras autenticarse. * * @example * ```typescript * import { authGuard } from 'valtech-components'; * * const routes: Routes = [ * { * path: 'dashboard', * canActivate: [authGuard], * loadComponent: () => import('./dashboard.page'), * }, * ]; * ``` */ export declare const authGuard: CanActivateFn; /** * Guard que verifica si el usuario NO está autenticado. * Redirige a homeRoute si ya está autenticado. * Útil para páginas de login/registro. * * @example * ```typescript * import { guestGuard } from 'valtech-components'; * * const routes: Routes = [ * { * path: 'login', * canActivate: [guestGuard], * loadComponent: () => import('./login.page'), * }, * ]; * ``` */ export declare const guestGuard: CanActivateFn; /** * Factory para crear guard de permisos. * Verifica si el usuario tiene el permiso especificado. * * @param permissions - Permiso o lista de permisos requeridos (OR) * @returns Guard function * * @example * ```typescript * import { authGuard, permissionGuard } from 'valtech-components'; * * const routes: Routes = [ * { * path: 'templates', * canActivate: [authGuard, permissionGuard('templates:read')], * loadComponent: () => import('./templates.page'), * }, * { * path: 'admin', * canActivate: [authGuard, permissionGuard(['admin:*', 'super_admin'])], * loadComponent: () => import('./admin.page'), * }, * ]; * ``` */ export declare function permissionGuard(permissions: string | string[]): CanActivateFn; /** * Guard que lee permisos desde route.data. * Permite configurar permisos directamente en la definición de rutas. * * @example * ```typescript * import { authGuard, permissionGuardFromRoute } from 'valtech-components'; * * const routes: Routes = [ * { * path: 'admin/users', * canActivate: [authGuard, permissionGuardFromRoute], * data: { * permissions: ['users:read', 'users:manage'], * requireAll: false // true = AND, false = OR (default) * }, * loadComponent: () => import('./users.page'), * }, * ]; * ``` */ export declare const permissionGuardFromRoute: CanActivateFn; /** * Guard que verifica si el usuario es super admin. * * @example * ```typescript * import { authGuard, superAdminGuard } from 'valtech-components'; * * const routes: Routes = [ * { * path: 'super-admin', * canActivate: [authGuard, superAdminGuard], * loadComponent: () => import('./super-admin.page'), * }, * ]; * ``` */ export declare const superAdminGuard: CanActivateFn; /** * Guard que verifica si el usuario tiene un rol específico. * * @param roles - Rol o lista de roles requeridos (OR) * @returns Guard function * * @example * ```typescript * import { authGuard, roleGuard } from 'valtech-components'; * * const routes: Routes = [ * { * path: 'editor', * canActivate: [authGuard, roleGuard(['editor', 'admin'])], * loadComponent: () => import('./editor.page'), * }, * ]; * ``` */ export declare function roleGuard(roles: string | string[]): CanActivateFn;