/**
 * @license
 * Copyright 2019 Red Hat
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
export declare class JsonCompat {
    /****** Utility ******/
    static stringify(json: any): string;
    static parseJSON(jsonString: string): any;
    static clone(json: any): any;
    static objectNode(): any;
    static arrayNode(): any;
    static nullNode(): any;
    static isPropertyDefined(json: any, propertyName: string): boolean;
    static parseObject(json: any): any;
    static removeNullProperties(object: any): any;
    static isString(json: any): boolean;
    static isNumber(json: any): boolean;
    static isObject(json: any): boolean;
    static isNull(json: any): boolean;
    static isBoolean(json: any): boolean;
    static toBoolean(json: any): boolean;
    static toString(json: any): string;
    static toNumber(json: any): number;
    static isArray(json: any): boolean;
    static toList(json: any): any[];
    /****** Getters ******/
    static keys(json: any): string[];
    static getProperty(json: any, propertyName: string): any;
    static consumeProperty(json: any, propertyName: string): any;
    static getPropertyObject(json: any, propertyName: string): any;
    static consumePropertyObject(json: any, propertyName: string): any;
    static getPropertyArray(json: any, propertyName: string): any[];
    static consumePropertyArray(json: any, propertyName: string): any[];
    static getPropertyString(json: any, propertyName: string): string;
    static consumePropertyString(json: any, propertyName: string): string;
    static getPropertyBoolean(json: any, propertyName: string): boolean;
    static consumePropertyBoolean(json: any, propertyName: string): boolean;
    static getPropertyNumber(json: any, propertyName: string): number;
    static consumePropertyNumber(json: any, propertyName: string): number;
    static getPropertyStringArray(json: any, propertyName: string): string[];
    static consumePropertyStringArray(json: any, propertyName: string): string[];
    /****** Setters ******/
    static setPropertyNull(json: any, propertyName: string): void;
    static setProperty(json: any, propertyName: string, propertyValue: any): void;
    static setPropertyString(json: any, propertyName: string, propertyValue: string): void;
    static setPropertyBoolean(json: any, propertyName: string, propertyValue: boolean): void;
    static setPropertyNumber(json: any, propertyName: string, propertyValue: number): void;
    static setPropertyStringArray(json: any, propertyName: string, propertyValue: string[]): void;
    static appendToArrayProperty(json: any, arrayPropertyName: string, propertyValue: any): void;
    static appendToArray(jsonArray: any, propertyValue: any): any;
    static setToArrayIndex(jsonArray: any, index: number, propertyValue: any): void;
    static mapToList<T>(items: any): Array<T>;
}
