import { Node } from "./Node.cjs";
import { ParsedNode } from "./ParsedNode.cjs";
import { PathPartCandidate } from "./PathPartCandidate.cjs";
/**
 * Represents a member access.
 */
export declare abstract class AccessExpressionNode<T> extends Node<T> {
    /**
     * The expression of the member access operation.
     */
    private expression;
    /**
     * The property to access.
     */
    private property;
    /**
     * Initializes a new instance of the {@linkcode PropertyAccessNode} class.
     *
     * @param source
     * The source of the node.
     *
     * @param expression
     * The expression of the member access operation.
     *
     * @param property
     * The property to access.
     */
    constructor(source: T, expression: ParsedNode<T>, property: ParsedNode<T>);
    /**
     * @inheritdoc
     */
    get Expression(): ParsedNode<T>;
    /**
     * Gets the index to access.
     */
    get Property(): ParsedNode<T>;
    /**
     * @inheritdoc
     */
    get Path(): Array<PathPartCandidate<T>>;
    /**
     * @inheritdoc
     */
    get Root(): ParsedNode<T>;
}
