import { IClassRef } from '../../api/IClassRef';
import { IEntityRef } from '../../api/IEntityRef';
import { JsonSchema7Serializer } from './JsonSchema7Serializer';
import { IJsonSchemaSerializeOptions } from './IJsonSchemaSerializeOptions';
import { IJsonSchemaUnserializeOptions } from './IJsonSchemaUnserializeOptions';
import { JsonSchema7Unserializer } from './JsonSchema7Unserializer';
import { ISerializerFactory } from '../serializer/ISerializerFactory';
import { ISerializer } from '../serializer/ISerializer';
import { IUnserializer } from '../serializer/IUnserializer';
export declare class JsonSchema implements ISerializerFactory {
    static request(addr: string, opts?: any): Promise<any>;
    static getSerializer(options?: IJsonSchemaSerializeOptions): JsonSchema7Serializer;
    static getUnserializer(options?: IJsonSchemaUnserializeOptions): JsonSchema7Unserializer;
    static serialize(klass: IClassRef | IEntityRef | Function | object, options?: IJsonSchemaSerializeOptions): import("./JsonSchema7").IJsonSchema7;
    static unserialize(data: any, options?: IJsonSchemaUnserializeOptions): Promise<IClassRef | IEntityRef | (IClassRef | IEntityRef)[]>;
    static detectSchemaVersion(schema: any, fallback?: string): string;
    getName(): string;
    getSerializer(options?: IJsonSchemaSerializeOptions): ISerializer;
    getUnserializer(options?: IJsonSchemaUnserializeOptions): IUnserializer;
    serialize(klass: IClassRef | IEntityRef | Function | object, options?: IJsonSchemaSerializeOptions): any;
    unserialize(data: string, options?: IJsonSchemaUnserializeOptions): Promise<IClassRef | IEntityRef | (IClassRef | IEntityRef)[]>;
}
