export type SimpleTypes = "array" | "boolean" | "integer" | "number" | "object" | "string" | "generic"; export interface JsonSchemaMap { [key: string]: JsonSchema; } export interface MetadataSchema { $id?: string; $schema?: string; $ref?: string; $comment?: string; title?: string; description?: string; default?: any; readOnly?: boolean; examples?: any[]; } export interface NumericValidationSchema { multipleOf?: number; maximum?: number; exclusiveMaximum?: number; minimum?: number; exclusiveMinimum?: number; } export interface StringValidationSchema { maxLength?: number; minLength?: number; pattern?: string; format?: string; contentMediaType?: string; contentEncoding?: string; } export interface ArrayValidationSchema { maxItems?: number; minItems?: number; uniqueItems?: boolean; contains?: JsonSchema; additionalItems?: JsonSchema; } export interface ObjectValidationSchema { maxProperties?: number; minProperties?: number; patternProperties?: JsonSchemaMap; dependencies?: { [k: string]: JsonSchema | string[]; }; propertyNames?: JsonSchema; } export interface ConditionalValidationSchema { if?: JsonSchema; then?: JsonSchema; else?: JsonSchema; } export interface CombinatorialValidationSchema { allOf?: JsonSchema[]; anyOf?: JsonSchema[]; oneOf?: JsonSchema[]; not?: JsonSchema; } export interface TypeDefinitionSchema { type?: SimpleTypes | SimpleTypes[]; const?: any; enum?: any[]; } export interface CoreSchemaMetaSchema extends MetadataSchema, NumericValidationSchema, StringValidationSchema, ArrayValidationSchema, ObjectValidationSchema, ConditionalValidationSchema, CombinatorialValidationSchema, TypeDefinitionSchema { templateArgsCnt?: number; [k: string]: any; } export interface JsonSchema extends CoreSchemaMetaSchema { required?: string[]; items?: JsonSchema | JsonSchema[]; additionalProperties?: JsonSchema; definitions?: JsonSchemaMap; properties?: JsonSchemaMap; } export type PontxTypeDefinitionSchema = Pick & { type: SimpleTypes; }; export type PontxMetadataSchema = Pick; export type PontxJsonSchemaMap = { [key: string]: PontxJsonSchema; }; export interface PontxCoreSchemaMetaSchema extends PontxMetadataSchema, NumericValidationSchema, StringValidationSchema, ArrayValidationSchema, PontxTypeDefinitionSchema { } export type PontxGenericTypeParameter = string | { name: string; default?: PontxJsonSchema; }; export interface ExternalDocumentationObject { description?: string; url: string; } export interface GenericRef { name?: string; $ref?: string; typeArguments?: PontxJsonSchema[]; } export interface PontxJsonSchema extends PontxCoreSchemaMetaSchema { required?: string[]; items?: PontxJsonSchema; additionalProperties?: PontxJsonSchema; properties?: PontxJsonSchemaMap; genericRef?: GenericRef; genericTypeParameters?: PontxGenericTypeParameter[]; genericTypeParameterRef?: string; externalDocs?: ExternalDocumentationObject; enumValueTitles?: Record; ext?: any; } type TraverseVisitOptions = { dataPath: string[]; schemaPath: string[]; }; export type TraverseVisitor = (schema: PontxJsonSchema, options: TraverseVisitOptions) => void; export declare class PontxJsonSchema { static toString(schema: PontxJsonSchema, schemaPrefix?: string): any; static create(): PontxJsonSchema; static checkIsMap(schema: PontxJsonSchema): boolean; static mapPontxSchema(schema: PontxJsonSchema, mapper: (schema: PontxJsonSchema) => PontxJsonSchema, traverseNewSchema?: boolean): any; static getSchemaByJsonPaths: (schema: PontxJsonSchema, jsonPaths: string[], rootSchema?: PontxJsonSchema) => any; static traversePontxSchema(schema: PontxJsonSchema, visitor: TraverseVisitor, options?: TraverseVisitOptions): void; static mapSchemaRequiredToArray(schema: PontxJsonSchema): any; static getUsedStructNames(schema: PontxJsonSchema): string[]; static parseFromSample(json: any): PontxJsonSchema; static merge(schema: PontxJsonSchema, newSchema: PontxJsonSchema): any; static checkRequired(schema: PontxJsonSchema, propName: string): boolean; } export {};