import { SessionInfo } from '../../../services/auth/types';
/**
 * Props de `val-session-list-modal` (organism compartido — lo reusan la vista
 * Seguridad y la vista Cuenta).
 *
 * Se pasan por `componentProps` del `ModalService.openSheet(...)`. Son escalares
 * + un callback (`onRevoke`) — NO `@Output`, porque los eventos no funcionan con
 * `modalController.create()`. El componente es **agnóstico a i18n**: recibe los
 * labels ya traducidos.
 */
export interface SessionListModalProps {
    /** Snapshot inicial de sesiones — el modal mantiene su copia y la refresca tras revoke. */
    sessions: SessionInfo[];
    /** Título del modal (ya traducido). */
    title: string;
    /** Label del botón cerrar del header (ya traducido). */
    closeLabel: string;
    /** Label "Esta sesión" (en idioma activo). */
    thisLabel: string;
    /** Label del botón revoke individual. */
    revokeLabel: string;
    /**
     * Callback que ejecuta el revoke contra el backend y retorna la lista
     * actualizada para refrescar el modal en sitio.
     */
    onRevoke?: (sessionId: string) => Promise<SessionInfo[]>;
}
