import { JSONSchema7 } from 'json-schema'; export declare const ModuleSchemaId = "common/module"; export declare const FunctionSchemaId = "common/function"; export declare const ClassSchemaId = "common/class"; export declare const ClassConstructorSchemaId = "common/class_constructor"; export declare const UndefinedSchemaId = "common/undefined"; export declare const NullSchemaId = "common/null"; export declare const PromiseSchemaId = "common/promise"; export declare const JSXElementSchemaId = "common/jsx"; export declare const NeverSchemaId = "common/never"; export declare const UnknownSchemaId = "common/unknown"; export declare const InterfaceSchemaId = "common/interface"; export interface ICodeSchema extends JSONSchema7 { items?: ICodeSchema | ICodeSchema[]; additionalItems?: ICodeSchema; contains?: ICodeSchema; properties?: Record; patternProperties?: Record; additionalProperties?: ICodeSchema; dependencies?: Record; propertyNames?: ICodeSchema; if?: ICodeSchema; then?: ICodeSchema; else?: ICodeSchema; allOf?: ICodeSchema[]; anyOf?: ICodeSchema[]; oneOf?: ICodeSchema[]; not?: ICodeSchema; definitions?: Record; name?: string; genericParams?: ICodeSchema[]; genericArguments?: ICodeSchema[]; inheritedFrom?: string; definedAt?: string; initializer?: string; } export interface IModuleSchema extends ICodeSchema { $ref: typeof ModuleSchemaId; $id: NonNullable; definitions: NonNullable; properties: NonNullable; } export declare type SchemaTypes = IFunctionSchema | IClassSchema | IInterfaceSchema | ICodeSchema; export interface IFunctionSchema extends ICodeSchema { $ref: typeof FunctionSchemaId | typeof ClassConstructorSchemaId; arguments: ICodeSchema[]; requiredArguments: string[]; restArgument?: ICodeSchema; returns?: ICodeSchema; } export interface IInterfaceSchema extends ICodeSchema { $ref: typeof InterfaceSchemaId; extends?: ICodeSchema[]; properties: NonNullable; required: NonNullable; } export interface IClassSchema extends ICodeSchema { $ref: typeof ClassSchemaId; extends?: ICodeSchema; implements?: ICodeSchema[]; 'constructor'?: IFunctionSchema; staticProperties?: Record; properties: NonNullable; } export declare function isRef(schema?: T | null): schema is T & { $ref: string; }; export declare function isClassSchema(schema?: ICodeSchema | null): schema is IClassSchema; export declare function isInterfaceSchema(schema?: ICodeSchema | null): schema is IInterfaceSchema; export declare function isFunctionSchema(schema?: ICodeSchema | null): schema is IFunctionSchema; export declare function isNeverSchema(schema?: T | null): schema is T; export declare function isObjectSchema(schema?: T | null): schema is T; export declare function isArraySchema(schema?: ICodeSchema | null): boolean; export declare function isModuleSchema(schema?: ICodeSchema | null): schema is IModuleSchema; //# sourceMappingURL=json-schema-types.d.ts.map