import { CPointer, CString } from '../cvizzu.types';
import { CObject } from './cenv.js';
import { Mirrored } from '../tsutils.js';
import { CPointerClosure } from './objregistry.js';
type Lister = (self: CPointer) => CString;
type Getter = (self: CPointer, path: CString) => CString;
type Setter = (self: CPointer, path: CString, value: CString) => void;
export declare class CProxy<T> extends CObject {
    private _lister;
    private _getter;
    private _setter;
    private _fromString;
    constructor(getId: CPointerClosure, cenv: CObject, lister: Lister, getter: Getter, setter: Setter, fromString?: (path: string, str: string) => unknown);
    set(value: T): void;
    get(): Mirrored<T>;
    listParams(): string[];
    getParam(path: string): unknown;
    setParam(path: string, value: unknown): void;
}
export {};
