import { type ILogObj, Logger } from 'tslog'; import type { CallAction, EventGroup, OCPPVersion } from '@citrineos/types'; import type { IMessageConfirmation } from '../../messages/index.js'; export interface AbstractMessageEndpointDependencies { logger: Logger; } export interface IMessageEndpointMetadata { action: CallAction; protocols: OCPPVersion[]; eventGroup: EventGroup; bodySchema: (version: OCPPVersion) => object | undefined; optionalQuerystrings?: Record; } export declare abstract class AbstractMessageEndpoint { protected readonly _logger: Logger; constructor(logger: Logger); abstract handle(identifiers: string[], request: unknown, callbackUrl: string | undefined, tenantId: number | undefined, version: OCPPVersion, extraQueries?: Record): Promise; }