import { LoginProps } from './types' import { Participant, Meeting, ParticipantToMeetingProps, GoMeetingProps, GoMeetingPayload, FetchEndpoint, EditParticipantAttributes } from '.' /** * **Módulo** de Proveedor CEV. */ export abstract class BaseProvider { /** * Dominio proveedor. */ url: string /** * Token del proveedor. */ token: string /** * Método que autentifica contra el proveedor el usuario con privilegios * para crear una reunión. * * @param {LoginProps} props - Parámetros para el Login del Proveedor CEV. */ abstract login (props: LoginProps): Promise /** * Método que permite añadir un participante a la reunión. * @param {Participant} participant - Instancia de participante a añadir. */ abstract createParticipant (participant: Participant): Promise /** * Método que permite editar un participante. */ abstract editParticipant ( participant: EditParticipantAttributes ): Promise /** * Método que permite crear una reunión. * @param {Meeting} meeting - Instancia de meeting a crear. */ abstract createMeeting (meeting: Meeting): Promise /** * Devuelve la url con la sesión para conectar directamente a AdobeConnect. * @param {GoMeetingProps} props - Parámetros de goMeeting. */ // abstract goMeeting (url: string, props: LoginProps): Promise abstract goMeeting (props: GoMeetingProps): Promise /** * Devuelve la url con la sesión para conectar directamente al proveedor. * @param {GoMeetingProps} props - Parámetros de goMeeting. */ abstract goMeetingTeacher (props: GoMeetingProps): Promise /** * Añade un participante a la meeting. * @param {ParticipantToMeetingProps} props - Parámetros de ParticipantToMeeting. */ abstract participantToMeeting ( props: ParticipantToMeetingProps ): Promise }