import type { AuthorizationDto, AuthorizationStatusEnumType, ConnectorDto, EvseDto } from '@citrineos/types'; import type { IMessageContext } from '../messages/message-context.js'; export interface IAuthorizer { /** * Interface for adding additional authorization logic. * If status is not Accepted, the authorization process will stop and the rejection put into the response. * The order of Authorizers can lead to different outputs; instantiate them in the order they should be called. * * @param {AuthorizationDto} authorization The authorization object associated with the idToken in the request. No modifications should be made to this object. * @param {IMessageContext} context * * @returns {Promise} The updated authorization status **/ authorize(authorization: AuthorizationDto, context: IMessageContext, evse?: EvseDto, connector?: ConnectorDto): Promise; }