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;
