import type { JSONSchema7, JSONSchema7TypeName } from "json-schema"; import type { TransformedSchema } from "../lib/json-schema/index.js"; export interface OpenAPIDiscriminator { propertyName: string; } export interface Schema extends TransformedSchema { discriminator?: OpenAPIDiscriminator; [ADDITIONAL_PROPERTY_FLAG]?: boolean; } export type SchemaDefinition = boolean | Schema; export type SchemaWithProperties = Schema & { properties: Exclude; }; export type SchemaType = JSONSchema7TypeName | "unknown"; export interface SchemaValues { null: null; string: string; number: number; integer: number; boolean: boolean; object: SchemaObjectValue; array: SchemaArrayValue; } export type SchemaValue = SchemaValues[keyof SchemaValues]; export interface SchemaObjectValue { [key: string]: SchemaValue | undefined; } export interface SchemaArrayValue extends Array { } export declare const REF_KEY = "$ref"; export declare const ID_KEY = "$id"; export declare const DEFS_KEY = "$defs"; export declare const DEFINITIONS_KEY = "definitions"; export declare const PROPERTIES_KEY = "properties"; export declare const ITEMS_KEY = "items"; export declare const DEPENDENCIES_KEY = "dependencies"; export declare const REQUIRED_KEY = "required"; export declare const PATTERN_PROPERTIES_KEY = "patternProperties"; export declare const DEFAULT_KEY = "default"; export declare const CONST_KEY = "const"; export declare const IF_KEY = "if"; export declare const THEN_KEY = "then"; export declare const ELSE_KEY = "else"; export declare const CONTAINS_KEY = "contains"; export declare const ALL_OF_KEY = "allOf"; export declare const ANY_OF_KEY = "anyOf"; export declare const ONE_OF_KEY = "oneOf"; export declare const NOT_KEY = "not"; export declare const ROOT_SCHEMA_PREFIX = "__sjsf_rootSchema"; export declare const ADDITIONAL_PROPERTY_FLAG = "__additional_property"; export declare const ADDITIONAL_PROPERTIES_KEY = "additionalProperties"; export declare const ADDITIONAL_ITEMS_KEY = "additionalItems"; export declare const PROPERTY_NAMES_KEY = "propertyNames"; export declare const DISCRIMINATOR_KEY = "discriminator"; export declare const PROPERTY_NAME_KEY = "propertyName"; export declare const DATA_URL_FORMAT = "data-url"; export declare function isSchemaWithProperties(schema: Schema): schema is SchemaWithProperties; export declare function isNormalArrayItems(items: Schema["items"]): items is Schema;