import { EnvironmentProviders, InjectionToken } from '@angular/core'; export type ValtechAccessFeatureConfig = Record; export interface ValtechAccessRule { /** * Requiere una sesion autenticada. Se asume true cuando la regla pide roles, * permisos o super admin. */ authenticated?: boolean; /** Limita acceso a usuarios platform super admin. */ superAdminOnly?: boolean; /** Roles aceptados. Default: OR. */ roles?: string[]; /** Permisos aceptados en formato resource:action. Default: OR. */ permissions?: string[]; /** Cambia roles de OR a AND. */ requireAllRoles?: boolean; /** Cambia permisos de OR a AND. */ requireAllPermissions?: boolean; /** Feature flag local o lista de flags registrados por app. Default: OR. */ features?: string | string[]; /** Cambia features de OR a AND. */ requireAllFeatures?: boolean; } export interface ValtechAccessContext { authenticated: boolean; isSuperAdmin: boolean; roles: string[]; permissions: string[]; } export declare const VALTECH_ACCESS_FEATURES: InjectionToken; export declare function provideValtechAccessFeatures(features: ValtechAccessFeatureConfig): EnvironmentProviders;