import { HttpClient } from '@angular/common/http';
import { SchemaType, NodeType, sortConfig } from '@hestia-earth/schema';
import { definitions, definition, IDefinitionObject } from '@hestia-earth/json-schema';
import * as i0 from "@angular/core";
export declare const linkTypeEnabled: (type: SchemaType | NodeType) => boolean;
export declare const refToSchemaType: (ref?: string) => string;
export declare const definitionToSchemaType: ({ title, $ref }: IDefinitionObject) => SchemaType;
export declare const schemaRequiredProperties: (schemas: definitions, def: IDefinitionObject) => {
    schemaType: SchemaType;
    properties: {
        key: string;
        value: definition;
    }[];
};
export declare const valueTypeToDefault: {
    number: string;
    integer: string;
    boolean: boolean;
    string: string;
};
export declare const nestingTypeEnabled: (schemaType: SchemaType) => boolean;
export declare const nestingEnabled: (schemaType: SchemaType, key: string) => boolean;
export declare const schemaTypeToDefaultValue: (schemas: definitions, prop: definition, nested?: boolean) => any;
export declare const availableProperties: (schema: definition, schemaType: SchemaType, value: any, isTopLevel?: boolean, skipExistingNode?: boolean) => any;
export declare const isSchemaIri: (schema?: IDefinitionObject) => boolean;
export declare class HeSchemaService {
    protected http: HttpClient;
    private schemasLoading;
    private schemasLoaded;
    private _schemas;
    private sortConfigLoading;
    private sortConfigLoaded;
    private _sortConfig;
    constructor(http: HttpClient);
    private loadSchemas;
    get schemas$(): import("rxjs").Observable<definitions>;
    schemas(): Promise<definitions>;
    private loadSortConfig;
    get sortConfig$(): import("rxjs").Observable<sortConfig>;
    sortConfig(): Promise<sortConfig>;
    /**
     * Parse and sort (if possible) headers from CSV content according to the schema order.
     * This will load the sort configuration according to the current schema version.
     *
     * @param csvContent The content as a string
     * @returns List of strings as Observable when parsing / sorting is done.
     */
    parseHeaders(csvContent: string): Promise<string[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<HeSchemaService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HeSchemaService>;
}
