import { stackPreparable } from "../stackBackend"; import { checkValid, prepareQueue, resourceIdentifier, toJson } from "../symbols"; import { pathItem } from "../path"; import { ResourceError, SMap } from "../general"; import { Substitution } from "./substitution"; import { AdvField, InlineAdvField } from "../field"; export declare const s_jsonLiteral: unique symbol; export declare class JSONLiteral extends InlineAdvField { readonly field: AdvField; readonly [s_jsonLiteral]: "literal" | "boolean" | "string" | "number"; readonly [resourceIdentifier]: string; constructor(field: AdvField, type: "literal" | "boolean" | "string" | "number"); [toJson](): any; [checkValid](): SMap; [prepareQueue](stack: stackPreparable, path: pathItem, ref: boolean): void; } /** * converts JS object to Substitution json string with parameters */ export declare class JSONField extends Substitution { private object; readonly [resourceIdentifier] = "JSONField"; private nestedness; constructor(object: any); [checkValid](): SMap; [prepareQueue](stack: stackPreparable, path: pathItem, ref: boolean): void; [toJson](): string | { "Fn::Sub": string; } | { "Fn::Sub": string[]; }; private escape; static literal(lit: boolean): boolean; static literal(lit: number): number; static literal(lit: string): object; /** parses the given string into an object */ static literal(lit: AdvField): JSONLiteral; static number(num: number | string): number; static number(num: AdvField): JSONLiteral; static string(str: number | string | boolean): string; static string(str: AdvField): JSONLiteral; static boolean(bool: number | boolean | string): boolean; static boolean(bool: AdvField): JSONLiteral; }