import { z } from "zod"; //#region src/schemas/common.d.ts /** * Shared zod v4 shapes used by muster validators. Exported from * `@classytic/muster/schemas/common` for reuse in host-side request * validation pipelines. */ /** * STRICT throughout — an unknown key is a 400, never a silent strip. * * These were `z.object()`, whose default is to DROP unrecognised keys. For a command * schema that is not lenient, it is lossy in the dangerous direction: * * - `idempotencyKeey` — accepted, dropped, and device-replay DEDUPLICATION is now off. * The punch double-posts and nothing reports a problem. * - `companionCounnt` — accepted, dropped, occupancy undercounts by the whole party. * - `scheduledStrat` — accepted, dropped, lateness is computed against no schedule. * * Every one produces a plausible record rather than an error, which is exactly the * failure mode this codebase is built against (AGENTS.md FAIL LOUD, rule 2: an input you * do not understand must FAIL, not widen). Nested objects — companion, geo, device — are * strict too, because that is where a typo is easiest to make and hardest to see. */ declare const objectIdString: z.ZodString; /** * `subjectRef` is deliberately a `string` (SourceBridge pattern). Hosts * may store ObjectId hex, UUID, email, membership number, etc. */ declare const subjectRefSchema: z.ZodString; /** `subjectModel` is the host's discriminator — Employee, Patient, Student … */ declare const subjectModelSchema: z.ZodString; declare const checkInMethodSchema: z.ZodEnum<{ biometric: "biometric"; facial: "facial"; geofence: "geofence"; kiosk: "kiosk"; manual: "manual"; mobile: "mobile"; qr: "qr"; rfid: "rfid"; unknown: "unknown"; }>; declare const attendanceOutcomeSchema: z.ZodEnum<{ absent: "absent"; early_leave: "early_leave"; half_day: "half_day"; late: "late"; on_leave: "on_leave"; present: "present"; }>; declare const geoPointSchema: z.ZodObject<{ latitude: z.ZodNumber; longitude: z.ZodNumber; accuracyMeters: z.ZodOptional; }, z.core.$strict>; declare const deviceInfoSchema: z.ZodObject<{ deviceId: z.ZodString; deviceType: z.ZodOptional; ip: z.ZodOptional; userAgent: z.ZodOptional; }, z.core.$strict>; /** `z.record` shape per PACKAGE_RULES — zod v4 requires both arguments. */ declare const metadataSchema: z.ZodRecord; //#endregion export { attendanceOutcomeSchema, checkInMethodSchema, deviceInfoSchema, geoPointSchema, metadataSchema, objectIdString, subjectModelSchema, subjectRefSchema };