export interface JsonSchemaNode { type?: string | readonly string[]; properties?: Record; required?: readonly string[]; additionalProperties?: boolean; const?: unknown; enum?: readonly unknown[]; minimum?: number; maximum?: number; minLength?: number; maxLength?: number; minItems?: number; maxItems?: number; pattern?: string; items?: JsonSchemaNode; } export interface SchemaValidationIssue { path: string; message: string; } export declare class SchemaValidationError extends Error { readonly issues: readonly SchemaValidationIssue[]; constructor(message: string, issues: readonly SchemaValidationIssue[]); } export declare function loadJsonSchema(path: string): JsonSchemaNode; export declare function parseJsonSchema(value: unknown, label?: string): JsonSchemaNode; export declare function assertSchema(value: unknown, schema: JsonSchemaNode, label: string): void; export declare function validateWithSchema(value: unknown, schema: JsonSchemaNode, path?: string): SchemaValidationIssue[];