/** * Candidate shape: must have an id, faceDescriptor, and any extra fields. */ export interface FaceCandidate { id: string; faceDescriptor: number[]; [key: string]: unknown; } /** * Configuration for the recognize handler. */ export interface RecognizeHandlerConfig { /** Fetch all active candidates with a faceDescriptor from the database */ getCandidates: () => Promise; /** Check auth/permission — return null if OK, or a Response to deny */ checkAuth?: (req: Request) => Promise; /** Get the matching distance threshold (default: 0.6) */ getThreshold?: () => Promise; /** Check if face recognition is enabled (default: always true) */ isEnabled?: () => Promise; /** Fields to return from the matched candidate (default: all except faceDescriptor) */ publicFields?: string[]; } /** * Factory for POST /api/face/recognize * * Receives a 128-float face descriptor, searches candidates, returns best match. */ export declare function createRecognizeHandler(config: RecognizeHandlerConfig): { POST: (req: Request) => Promise; }; //# sourceMappingURL=recognize.route.d.ts.map