import { ParseableFile } from './parsable_file'; export declare type JSONValue = null | number | string | boolean | JSONValue[] | { [k: string]: undefined | JSONValue; }; export declare type JSONObject = { [k: string]: undefined | JSONValue; }; export declare class JSONFile extends ParseableFile { stringify(content?: T): string; parse(content: string): T; get parsedContent(): Promise; /** @see https://stackoverflow.com/a/8817461/340688 */ static getDeep(obj: JSONObject, key: string): undefined | JSONValue; /** @see https://stackoverflow.com/a/18937118/340688 */ static setDeep(obj: JSONObject, key: string, value: JSONValue): JSONObject; /** @see https://stackoverflow.com/a/48666737/340688 */ static unsetDeep(obj: JSONObject, key: string): void; getDeep(prop: string): Promise; setDeep(prop: string, value: JSONValue): Promise; unsetDeep(prop: string): Promise; get(prop: keyof T): Promise; set(prop: keyof T, value: JSONValue): Promise; unset(prop: keyof T): Promise; }