import * as i0 from '@angular/core';
import { InjectionToken, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { IResolveOpts } from '@stoplight/json-ref-resolver/types';
import { JSONSchema as JSONSchema$1 } from 'json-schema-typed/draft-07';
import { JSONSchema as JSONSchema$2 } from 'json-schema-typed/draft-2019-09';
import { JSONSchema as JSONSchema$3 } from 'json-schema-typed/draft-2020-12';

type CheckKey = "nullable" | "deprecated" | "readOnly" | "writeOnly" | "enum" | "stringLength" | "objectProperties" | "no-extra-properties" | "arrayItems" | "arrayContains" | "no-extra-items" | "number-range" | "pattern" | "multipleOf" | "uniqueItems" | "default" | "const" | "examples" | "contentMediaType" | "contentEncoding" | "contentSchema";
type JSVOptions = {
    /**
     * Should we display "examples" ?
     * @default false
     */
    showExamples: boolean;
    /**
     * To overwrite the order to display qualifier messages
     * @default ["nullable","deprecated","readOnly","writeOnly","enum","stringLength","objectProperties","no-extra-properties","arrayItems","arrayContains","no-extra-items","number-range","pattern","multipleOf","uniqueItems","contentEncoding","contentMediaType","contentSchema","default","const","examples"]
     */
    qualifierMessagesOrder: CheckKey[];
};
declare const JSV_OPTIONS: InjectionToken<Partial<JSVOptions>>;

type JSONSchema = JSONSchema$1 | JSONSchema$2 | JSONSchema$3;

declare class SchemaResolutionService {
    resolveSchema(schema: unknown, resolverOptions?: IResolveOpts): Observable<JSONSchema>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SchemaResolutionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SchemaResolutionService>;
}

type StatusType = "LOADING" | "ERROR" | "DONE";
declare class NgxJsonSchemaViewerComponent implements OnInit {
    private schemaResolutionService;
    schema: unknown;
    resolverOptions?: IResolveOpts;
    expanded: boolean;
    resolvedSchema: i0.WritableSignal<JSONSchema | undefined>;
    error: i0.WritableSignal<Error | undefined>;
    status: i0.Signal<StatusType>;
    constructor(schemaResolutionService: SchemaResolutionService);
    ngOnInit(): void;
    private schemaResolution;
    get getSchemaTitle(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxJsonSchemaViewerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxJsonSchemaViewerComponent, "ngx-json-schema-viewer", never, { "schema": { "alias": "schema"; "required": true; }; "resolverOptions": { "alias": "resolverOptions"; "required": false; }; }, {}, never, never, true, never>;
}

export { JSV_OPTIONS, NgxJsonSchemaViewerComponent };
