export interface DelimiterTagFixture {
    begin: string;
    end: string;
}
export interface Placeholder {
    begin: string;
    end: string;
    escapedBeginning: string;
    escapedEnding: string;
    regex: RegExp;
}
export interface BuildOptions {
    delimiterTags: DelimiterTagFixture[];
    defaultValueSeparator: string;
    nullishValues: (boolean | number | string | null)[];
}
type NullishValue = boolean | number | string | null;
export interface Configuration {
    placeholders: Placeholder[];
    defaultValueSeparator: string;
    nullishValues: NullishValue[];
}
type VariableMap = Record<string, unknown>;
export declare class JsonPlaceholderReplacer {
    private readonly variablesMap;
    private readonly configuration;
    private readonly delimiterTagsRegex;
    private readonly serializedNullishValues;
    private readonly stringifyCache;
    private readonly escapeRegExp;
    constructor(options?: Partial<BuildOptions>);
    addVariableMap(variableMap: VariableMap | string): JsonPlaceholderReplacer;
    setVariableMap(...variablesMap: (VariableMap | string)[]): JsonPlaceholderReplacer;
    replace(json: object): object;
    replaceWith(json: object, ...variablesMap: VariableMap[]): object;
    private initializeConfigurations;
    private replaceChildren;
    private replaceValue;
    private replacer;
    private safeStringify;
    private parseTag;
    private checkInEveryMap;
    private isNullishValue;
    private navigateThroughMap;
}
export {};
