import { ContextBase } from "../context";
import * as Inputs from "../inputs/inputs";
/**
 * Contains various json path methods.
 * <div>
 *  <img src="../assets/images/blockly-images/math/math.svg" alt="Blockly Image"/>
 * </div>
 */
export declare class JSONBitByBit {
    private readonly context;
    constructor(context: ContextBase);
    /**
     * Stringifies the input value
     * @param inputs a value to be stringified
     * @returns string
     * @group transform
     * @shortname stringify
     * @drawable false
     */
    stringify(inputs: Inputs.JSON.StringifyDto): string;
    /**
     * Parses the input value
     * @param inputs a value to be parsed
     * @returns any
     * @group transform
     * @shortname parse
     * @drawable false
     */
    parse(inputs: Inputs.JSON.ParseDto): any;
    /**
     * Queries the input value
     * @param inputs a value to be queried
     * @returns any
     * @group jsonpath
     * @shortname query
     * @drawable false
     */
    query(inputs: Inputs.JSON.QueryDto): any;
    /**
     * Sets value on given property of the given json
     * @param inputs a value to be added, json and a property name
     * @returns any
     * @group props
     * @shortname set value on property
     * @drawable false
     */
    setValueOnProp(inputs: Inputs.JSON.SetValueOnPropDto): any;
    /**
     * Gets json from array by first property match. This is very simplistic search and only returns the first match.
     * If you need more complex search, you can use jsonpath query with filters.
     * @param inputs an array of json objects, a property name and a value to match
     * @returns any
     * @group props
     * @shortname get json from array by prop match
     * @drawable false
     */
    getJsonFromArrayByFirstPropMatch(inputs: Inputs.JSON.GetJsonFromArrayByFirstPropMatchDto): any;
    /**
     * Gets value of the property in the given json
     * @param inputs a value to be added, json and a property name
     * @returns any
     * @group props
     * @shortname get value on property
     * @drawable false
     */
    getValueOnProp(inputs: Inputs.JSON.GetValueOnPropDto): any;
    /**
     * Sets value to the json by providing a path
     * @param inputs a value to be added, json and a path
     * @returns any
     * @group jsonpath
     * @shortname set value on path
     * @drawable false
     */
    setValue(inputs: Inputs.JSON.SetValueDto): any;
    /**
     * Sets multiple values to the json by providing paths
     * @param inputs a value to be added, json and a path
     * @returns any
     * @group jsonpath
     * @shortname set values on paths
     * @drawable false
     */
    setValuesOnPaths(inputs: Inputs.JSON.SetValuesOnPathsDto): any;
    /**
     * Find paths to elements in object matching path expression
     * @param inputs a json value and a query
     * @returns any
     * @group jsonpath
     * @shortname paths
     * @drawable false
     */
    paths(inputs: Inputs.JSON.PathsDto): any;
    /**
     * Creates an empty JavaScript object
     * @returns any
     * @group create
     * @shortname empty
     * @drawable false
     */
    createEmpty(): any;
    /**
     * Previews json and gives option to save it
     * @returns any
     * @group preview
     * @shortname json preview and save
     * @drawable false
     */
    previewAndSaveJson(inputs: Inputs.JSON.JsonDto): void;
    /**
     * Previews json
     * @returns any
     * @group preview
     * @shortname json preview
     * @drawable false
     */
    previewJson(inputs: Inputs.JSON.JsonDto): void;
}
