import type { CypherEnvironment } from "../Environment";
import { ListIndex } from "../expressions/list/ListIndex";
import type { CypherCompilable, Expr } from "../types";
import type { Variable } from "./Variable";
/** Reference to a variable property
 * @group Variables
 * @example `new Node({labels: ["Movie"]}).property("title")`
 */
export declare class PropertyRef implements CypherCompilable {
    private readonly _variable;
    private readonly propertyPath;
    /**
     * @internal
     */
    constructor(variable: Variable, ...properties: Array<string | Expr>);
    get variable(): Variable;
    /** Access individual property via the PropertyRef class, using dot notation or square brackets notation if an expression is provided */
    property(prop: string | Expr): PropertyRef;
    index(index: number): ListIndex;
    /** @internal */
    getCypher(env: CypherEnvironment): string;
    private getPropertyCypher;
}
