import type { OpenAPIV3 } from "openapi-types"; export type Nullified< T, K extends keyof T > = T & Record; export type ReferenceSchema = OpenAPIV3.ReferenceObject; export type ArraySchema = OpenAPIV3.ArraySchemaObject; export type NonArraySchema = OpenAPIV3.NonArraySchemaObject; export type RegularSchema = ArraySchema | NonArraySchema; export type NullableSchema = Readonly>> & RegularSchema; export type AnyOfRuleComposedSchema = Readonly>> & RegularSchema; export type AllOfRuleComposedSchema = Readonly>> & RegularSchema; export type OneOfRuleComposedSchema = Readonly>> & RegularSchema; export type NotRuleComposedSchema = Readonly>> & RegularSchema; export type ComposedSchema = AllOfRuleComposedSchema | AnyOfRuleComposedSchema | NotRuleComposedSchema | OneOfRuleComposedSchema; export type NonComposedRegularSchema = Readonly> & RegularSchema; export type NonComposedSchema = NonComposedRegularSchema | ReferenceSchema; export type BooleanSchema = NonComposedRegularSchema & Readonly<{ type: "boolean" }>; export type IntegerSchema = NonComposedRegularSchema & Readonly<{ type: "integer" }>; export type NumberSchema = NonComposedRegularSchema & Readonly<{ type: "number" }>; export type ObjectSchema = NonComposedRegularSchema & Readonly<{ type: "object" }>; export type StringSchema = NonComposedRegularSchema & Readonly<{ type: "string" }>; export type EnumSchema = Readonly>> & StringSchema; export type EmptyObjectSchema = ObjectSchema & Readonly>; export type NonEmptyObjectSchema = ObjectSchema & Readonly>>; export type MapSchema = EmptyObjectSchema & Readonly>>; export type Schema = ReferenceSchema | RegularSchema; export declare function isReferenceSchema(schema: Schema): schema is ReferenceSchema; export declare function isAnyOfRuleComposedSchema(schema: Schema): schema is AnyOfRuleComposedSchema; export declare function isAllOfRuleComposedSchema(schema: Schema): schema is AllOfRuleComposedSchema; export declare function isOneOfRuleComposedSchema(schema: Schema): schema is OneOfRuleComposedSchema; export declare function isNotRuleComposedSchema(schema: Schema): schema is NotRuleComposedSchema; export declare function isComposedSchema(schema: Schema): schema is ComposedSchema; export declare function isNonComposedSchema(schema: Schema): schema is NonComposedSchema; export declare function isNonComposedRegularSchema(schema: Schema): schema is NonComposedRegularSchema; export declare function isNullableSchema(schema: Schema): schema is NullableSchema; export declare function decomposeSchema(schema: ComposedSchema): readonly Schema[]; export declare function isArraySchema(schema: Schema): schema is ArraySchema; export declare function isBooleanSchema(schema: Schema): schema is BooleanSchema; export declare function isIntegerSchema(schema: Schema): schema is IntegerSchema; export declare function isNumberSchema(schema: Schema): schema is NumberSchema; export declare function isObjectSchema(schema: Schema): schema is ObjectSchema; export declare function isStringSchema(schema: Schema): schema is StringSchema; export declare function isEnumSchema(schema: Schema): schema is EnumSchema; export declare function isEmptyObject(schema: Schema): schema is EmptyObjectSchema; export declare function isMapSchema(schema: Schema): schema is MapSchema; export declare function simplifyFullyQualifiedName(name: string): string; export declare function convertReferenceSchemaToSpecifier({ $ref }: ReferenceSchema): string; export declare function convertReferenceSchemaToFullyQualifiedName({ $ref }: ReferenceSchema): string; export declare function convertFullyQualifiedNameToRelativePath(name: string): string; export declare function convertReferenceSchemaToPath(schema: ReferenceSchema): string; export declare function resolveReference(schemas: OpenAPIV3.ComponentsObject["schemas"], { $ref }: ReferenceSchema): Schema | undefined;