import { DataSchema, FormData, SchemaObjectProperty, SchemaPrimitiveType, SchemaProperty } from './schema-models';
import { DataTypeRegistration } from './schema-store';
/**
 * Utility functions for Schema.
 * @dynamic
 */
export declare class SchemaUtilities {
    /**
     * It generates the data based on given schema.
     */
    static generateDataBasedOnSchema(schema: DataSchema): FormData;
    /**
     * It generates the data based on given property.
     */
    static generateDataBasedOnSchemaProperty(property: SchemaProperty): FormData;
    /**
     * It set up the form data with given schema.
     * Any properties not in the passed in data will be added in the returned data.
     */
    static setUpFormData(data: FormData, schema: DataSchema): FormData;
    /**
     * It generates the full type (e.g. 'string|textbox') by property schema.
     */
    static generateFullTypeStringByPropertySchema(propertySchema: SchemaProperty): string;
    /**
     * It generates the full type (e.g. 'string|textbox') by type and format.
     */
    static generateFullTypeString(type: SchemaPrimitiveType, format: string): string;
    /**
     * It generates the full type (e.g. 'string|textbox') by data type registration.
     */
    static generateFullTypeStringByDataTypeRegistration(dataTypeRegistration: DataTypeRegistration): string;
    /**
     * It gets the property schema by name in the given schema which contains the property array.
     */
    static getPropertySchemaByName(schema: DataSchema | SchemaObjectProperty, propertyName: string): SchemaProperty;
    /**
     * Deepcopy the object.
     */
    static deepCopy(object: any): any;
    private static setUpFormDataInternal;
}
