"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogEntrySchema = exports.LogContextSchema = exports.LogCategorySchema = exports.LogLevelSchema = void 0;
const zod_1 = require("zod");
exports.LogLevelSchema = zod_1.z.enum(['debug', 'info', 'warn', 'error', 'critical']);
exports.LogCategorySchema = zod_1.z.enum([
    'system',
    'security',
    'performance',
    'audit',
    'accessibility',
    'compliance',
    'ai',
    'workflow',
    'api',
    'ui',
    'user',
    'other'
]);
exports.LogContextSchema = zod_1.z.object({
    component: zod_1.z.string().optional(),
    operation: zod_1.z.string().optional(),
    userId: zod_1.z.string().optional(),
    sessionId: zod_1.z.string().optional(),
    requestId: zod_1.z.string().optional(),
    correlationId: zod_1.z.string().optional(),
    timestamp: zod_1.z.string(),
    metadata: zod_1.z.record(zod_1.z.unknown()).optional()
});
exports.LogEntrySchema = zod_1.z.object({
    level: exports.LogLevelSchema,
    category: exports.LogCategorySchema,
    message: zod_1.z.string(),
    timestamp: zod_1.z.string(),
    context: exports.LogContextSchema.optional(),
    error: zod_1.z.unknown().optional(),
    metadata: zod_1.z.record(zod_1.z.unknown()).optional()
});
//# sourceMappingURL=logger.js.map