import { AccessExpressionNode } from "./AccessExpressionNode.cjs";
import { NodeKind } from "./NodeKind.cjs";
import { ParsedNode } from "./ParsedNode.cjs";
import { PathPartCandidate } from "./PathPartCandidate.cjs";
/**
 * Represents a property access.
 */
export declare class PropertyAccessNode<T> extends AccessExpressionNode<T> {
    /**
     * @inheritdoc
     */
    readonly Type = NodeKind.PropertyAccessNode;
    /**
     * The name of the property to access.
     */
    private propertyName;
    /**
     * Initializes a new instance of the {@linkcode PropertyAccessNode} class.
     *
     * @param source
     * The source of the node.
     *
     * @param expression
     * The expression of the property access operation.
     *
     * @param property
     * The property to access.
     *
     * @param propertyName
     * The name of the property to access.
     */
    constructor(source: T, expression: ParsedNode<T>, property: ParsedNode<T>, propertyName: string);
    /**
     * Gets the name of the property to access.
     */
    get PropertyName(): string;
    /**
     * @inheritdoc
     */
    get PathPart(): PathPartCandidate<T>;
}
