import * as _Object from './ion/Object';
import * as Expression from './Expression';
import * as ChainElement from './ChainElement';
import * as Type from './Type';
import * as RuntimeType from './RuntimeType';
import * as Typed from './Typed';
import * as Node from './Node';
import * as Location from './Location';
import * as Null from './ion/Null';
import * as Boolean from './ion/Boolean';
import * as Identifier from './Identifier';
export declare class MemberExpression implements _Object.Object, Expression.Expression, ChainElement.ChainElement, Type.Type, RuntimeType.RuntimeType, Typed.Typed, Node.Node {
    readonly location: Location.Location | Null.Null;
    readonly type: Type.Type | Null.Null;
    readonly optional: Boolean.Boolean;
    readonly object: Expression.Expression;
    readonly property: Identifier.Identifier | Expression.Expression;
    static readonly id = "MemberExpression";
    static readonly implements: Set<string>;
    constructor({ location, type, optional, object, property }: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        optional?: Boolean.Boolean;
        object: Expression.Expression;
        property: Identifier.Identifier | Expression.Expression;
    });
    patch(properties: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        optional?: Boolean.Boolean;
        object?: Expression.Expression;
        property?: Identifier.Identifier | Expression.Expression;
    }): MemberExpression;
    static is(value: any): value is MemberExpression;
}
export declare function isMemberExpression(value: any): value is MemberExpression;
export default MemberExpression;
