import type { Request } from 'express'; import type { BCMSApiKey } from '../api'; export interface BCMSApiKeySecurity { verify(request: BCMSApiKeyRequestObject, skipAccess?: boolean): Promise; verifyAccess(key: BCMSApiKey, method: string, path: string): boolean; sign(config: { key: { id: string; secret: string; }; payload: unknown; }): BCMSApiKeySignature; httpRequestToApiKeyRequest(request: Request): BCMSApiKeyRequestObject; } export interface BCMSApiKeySignature { /** Key */ k: string; /** Timestamp */ t: number | string; /** Nonce */ n: string; /** Signature */ s: string; } export interface BCMSApiKeyRequestObject { data: BCMSApiKeySignature; payload: Payload; requestMethod: string; path: string; }