import { JsonObjectVisitor } from "./JsonObjectVisitor";
/**
 *
 */
export declare class DialogVisitor implements JsonObjectVisitor {
    private _enclosedJsonObject;
    constructor(value: string | object);
    static propagateTenantIdAndSessionId(dialog: object, tenantId: string, sessionId: string): void;
    static visitId(dialog: object): string;
    static visitAndSetId(dialog: object, id: string): void;
    copyAsJsonObject(): object;
    copyAsJsonString(): string;
    enclosedJsonObject(): any;
    /**
     * The record id targeted by the root dialog (usually a Form) will be used to help derive new dialog ids for the
     * root and all of its children. The derived dialog id is a concatenation of the dialogName with a '@' and the
     * root record id.
     */
    deriveDialogIdsFromDialogNameAndRecordId(): void;
    /**
     * Traverse this dialog and its children and derive their dailog ids by concatenating each dialog's
     * dialogName with a '$' and the given suffix. Dialog ids ending withs a suffix are synthetic. Its possible
     * that a dialog id may have a suffix and a specific record id. In this case the dialog id will contain
     * a '$' and an '@' so that each field can be parsed separately.
     *
     * @param {string} suffix
     */
    deriveDialogIdsFromDialogNameAndSuffix(suffix: string): void;
    propagateTenantIdAndSessionId(tenantId: string, sessionId: string): void;
    visitDescription(): string;
    visitAndSetDescription(description: string): void;
    visitDialogName(): string;
    visitId(): string;
    visitAndSetId(id: string): void;
    visitAndSetRootDialogId(rootDialogId: string): void;
    visitChildAt(index: number): DialogVisitor;
    visitChildAtName(name: string): DialogVisitor;
    visitChildAtNameAndSetId(name: string, id: string): boolean;
    visitRecordId(): string;
    visitAndSetRecordId(recordId: string): void;
    visitReferringObject(): object;
    visitAndSetReferringDialogId(dialogId: string): void;
    private deriveDialogIdsFromDialogName;
}
