import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { PropertySchema } from '../model/propertySchema';
import { ResourceListOfString } from '../model/resourceListOfString';
import { ResourceListOfValueType } from '../model/resourceListOfValueType';
import { Schema } from '../model/schema';
import { Configuration } from '../configuration';
import * as i0 from "@angular/core";
export declare class SchemasService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    /**
     * @param consumes string[] mime-types
     * @return true: consumes contains 'multipart/form-data', false: otherwise
     */
    private canConsumeForm;
    /**
     * [EARLY ACCESS] GetEntitySchema: Get schema
     * Gets the schema and meta-data for a given entity
     * @param entity The name of a valid entity
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getEntitySchema(entity: string, observe?: 'body', reportProgress?: boolean): Observable<Schema>;
    getEntitySchema(entity: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Schema>>;
    getEntitySchema(entity: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Schema>>;
    /**
     * [EARLY ACCESS] GetPropertySchema: Get property schema
     * Get the schemas for the provided list of property keys.
     * @param propertyKeys One or more property keys for which the schema is requested
     * @param asAt Optional. The AsAt date of the data
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getPropertySchema(propertyKeys?: Array<string>, asAt?: Date, observe?: 'body', reportProgress?: boolean): Observable<PropertySchema>;
    getPropertySchema(propertyKeys?: Array<string>, asAt?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PropertySchema>>;
    getPropertySchema(propertyKeys?: Array<string>, asAt?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PropertySchema>>;
    /**
     * [EARLY ACCESS] GetValueTypes: Get value types
     * Gets the available value types for which a schema is available.
     * @param sortBy Optional. Order the results by these fields. Use use the \&#39;-\&#39; sign to denote descending order e.g. -MyFieldName
     * @param start Optional. When paginating, skip this number of results
     * @param limit Optional. When paginating, limit the number of returned results to this many.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getValueTypes(sortBy?: Array<string>, start?: number, limit?: number, observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfValueType>;
    getValueTypes(sortBy?: Array<string>, start?: number, limit?: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfValueType>>;
    getValueTypes(sortBy?: Array<string>, start?: number, limit?: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfValueType>>;
    /**
     * [EARLY ACCESS] ListEntities: List entities
     * List all available entities for which schema information is available.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    listEntities(observe?: 'body', reportProgress?: boolean): Observable<ResourceListOfString>;
    listEntities(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ResourceListOfString>>;
    listEntities(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ResourceListOfString>>;
    static ɵfac: i0.ɵɵFactoryDef<SchemasService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDef<SchemasService>;
}
