interface NodeResult {
    node: Record<string, unknown>;
    hasDefinedTable: boolean;
}
export interface TableObjectOptions {
    enableTableComment?: boolean;
}
export declare class TableObject {
    root: Record<string, unknown>;
    currentTable: Record<string, unknown>;
    currentTablePath: string[] | null;
    isCurrentTableArray: boolean;
    enableTableComment: boolean;
    private readonly tableSet;
    private readonly arrayOfTablesSet;
    private readonly objectSet;
    private comments;
    constructor(options?: TableObjectOptions);
    set(path: string[], value: unknown): void;
    switchTable(path: string[]): void;
    switchArrayOfTables(path: string[]): void;
    getNode(node: Record<string, unknown>, path: string[], action: 'set' | 'switchTable' | 'switchArrayOfTables'): NodeResult;
    addComment(comment: string): void;
    clearComments(): void;
    setCurrentTableComment(): void;
}
export {};
