import type { AnySchema } from "../../types"; import type { SchemaObjCxt } from ".."; import { Code, Name } from "../codegen"; import { Type } from "../util"; import type { JSONType } from "../rules"; export interface SubschemaContext { schema: AnySchema; schemaPath: Code; errSchemaPath: string; topSchemaRef?: Code; errorPath?: Code; dataLevel?: number; dataTypes?: JSONType[]; data?: Name; parentData?: Name; parentDataProperty?: Code | number; dataNames?: Name[]; dataPathArr?: (Code | number)[]; propertyName?: Name; jtdDiscriminator?: string; jtdMetadata?: boolean; compositeRule?: true; createErrors?: boolean; allErrors?: boolean; } export declare type SubschemaArgs = Partial<{ keyword: string; schemaProp: string | number; schema: AnySchema; schemaPath: Code; errSchemaPath: string; topSchemaRef: Code; data: Name | Code; dataProp: Code | string | number; dataTypes: JSONType[]; definedProperties: Set; propertyName: Name; dataPropType: Type; jtdDiscriminator: string; jtdMetadata: boolean; compositeRule: true; createErrors: boolean; allErrors: boolean; }>; export declare function getSubschema(it: SchemaObjCxt, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }: SubschemaArgs): SubschemaContext; export declare function extendSubschemaData(subschema: SubschemaContext, it: SchemaObjCxt, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }: SubschemaArgs): void; export declare function extendSubschemaMode(subschema: SubschemaContext, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }: SubschemaArgs): void;