/** * — el primitivo del blindaje. Un host lo monta en UNA línea * envolviendo su app autenticada: * * * * * * Comportamiento según el estado (resuelto por el backend del host): * - Sin enforcement, o estado operable (valid/stale/grace) → renderiza children. * stale/grace además montan el degradado por encima. * - enforcement && missing/invalid/expired → modal BLOQUEANTE full-screen, * no descartable, con el formulario de activación. Al activar con éxito el * host refresca el estado y el gate se abre sin recargar. * * Es branding-aware si el host pasa `branding` (logo/nombre desde el * PlatformConfig del SDK); si no, cae a un encabezado neutro. * * INDEPENDIENTE del kernel: no importa su cliente ni fija su versión. Solo * consume `LicenseState` y una promesa `onActivate`. */ import { type ReactNode } from 'react'; import { type LicenseState, type LicenseBranding } from './types'; export interface LicenseGateProps { /** Estado actual, resuelto por el backend del host. `undefined` mientras * carga → fail-open (renderiza children, nunca destella el candado). */ state: LicenseState | undefined; /** Activa una licencia con el código/token pegado. Resuelve → el host * refresca `state` y el gate se abre. Rechaza con un Error cuyo `message` * se muestra al usuario. */ onActivate: (code: string) => Promise; children: ReactNode; /** Branding opcional (logo/nombre) para el encabezado del modal. */ branding?: LicenseBranding; /** Acción "Gestionar licencia" del banner degradado (opcional). */ onManage?: () => void; /** Si el usuario actual puede activar la licencia (p. ej. Platform Root / * superadmin). Default true — backward-compatible. Cuando es false, el modal * bloqueante se muestra SIN el formulario de activación y en su lugar * aparece `readOnlyMessage`. */ canActivate?: boolean; /** Mensaje mostrado en el modal bloqueante cuando `canActivate` es false. */ readOnlyMessage?: string; className?: string; } export declare function LicenseGate({ state, onActivate, children, branding, onManage, canActivate, readOnlyMessage, className, }: LicenseGateProps): import("react").JSX.Element; //# sourceMappingURL=license-gate.d.ts.map