rules.d.ts 809 B

12345678910111213141516171819202122232425262728
  1. import type { AddedKeywordDefinition } from "../types";
  2. declare const _jsonTypes: readonly ["string", "number", "integer", "boolean", "null", "object", "array"];
  3. export type JSONType = (typeof _jsonTypes)[number];
  4. export declare function isJSONType(x: unknown): x is JSONType;
  5. type ValidationTypes = {
  6. [K in JSONType]: boolean | RuleGroup | undefined;
  7. };
  8. export interface ValidationRules {
  9. rules: RuleGroup[];
  10. post: RuleGroup;
  11. all: {
  12. [Key in string]?: boolean | Rule;
  13. };
  14. keywords: {
  15. [Key in string]?: boolean;
  16. };
  17. types: ValidationTypes;
  18. }
  19. export interface RuleGroup {
  20. type?: JSONType;
  21. rules: Rule[];
  22. }
  23. export interface Rule {
  24. keyword: string;
  25. definition: AddedKeywordDefinition;
  26. }
  27. export declare function getRules(): ValidationRules;
  28. export {};