import type { GUIController } from 'dat.gui';
type OverwriteNonObjectTypes<T, S> = {
    [K in keyof T]: T[K] extends Record<string, any> ? OverwriteNonObjectTypes<T[K], S> : S;
};
type InternalStore = {
    __folder: dat.GUI;
    [key: string]: any;
};
export type GuiStore<T extends Record<string, any> = Record<string, any>> = T & InternalStore & OverwriteNonObjectTypes<T, GUIController>;
export declare const _recursiveGuifyObject: (obj: Record<string, unknown>, parentGui: dat.GUI, rootGui: dat.GUI) => GuiStore;
export declare const guifyObject: (obj: Record<string, unknown>, parentGui: dat.GUI) => GuiStore;
export {};
