type DocumentType = 'aadhaar' | 'pan' | 'gstin' | 'ifsc' | 'pincode' | 'tan' | 'uan' | 'voter-id' | 'dl' | 'passport' | 'upi' | 'phone' | 'msme'; type FieldLocation = 'body' | 'query' | 'params'; interface FieldRule { field: string; type: DocumentType; location?: FieldLocation; optional?: boolean; message?: string; } interface ValidationError { field: string; value: unknown; message: string; type: DocumentType; } interface Request { body?: Record; query?: Record; params?: Record; } interface Response { status: (code: number) => Response; json: (body: unknown) => unknown; } type NextFunction = (err?: unknown) => void; /** * @example * import express from 'express' * import { pramanaMiddleware, validateAadhaar } from '@prashanttiw/pramana/express' * * const app = express() * app.use(express.json()) * * // Validate multiple fields * app.post('/api/kyc', * pramanaMiddleware([ * { field: 'aadhaar', type: 'aadhaar' }, * { field: 'pan', type: 'pan' }, * { field: 'gstin', type: 'gstin', optional: true }, * ]), * (req, res) => res.json({ success: true }) * ) * * // Single field shorthand * app.post('/api/verify', validateAadhaar(), (req, res) => ...) */ declare function pramanaMiddleware(rules: FieldRule[]): (req: Request, res: Response, next: NextFunction) => void; declare const validateAadhaar: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validatePAN: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateGSTIN: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateIFSC: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validatePincode: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateTAN: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateUAN: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateVoterID: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateDL: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validatePassport: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateUPI: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validatePhone: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; declare const validateMSME: (field?: string) => (req: Request, res: Response, next: NextFunction) => void; export { type DocumentType, type FieldLocation, type FieldRule, type NextFunction, type Request, type Response, type ValidationError, pramanaMiddleware, validateAadhaar, validateDL, validateGSTIN, validateIFSC, validateMSME, validatePAN, validatePassport, validatePhone, validatePincode, validateTAN, validateUAN, validateUPI, validateVoterID };