import * as _Object from './ion/Object';
import * as Expression from './Expression';
import * as Typed from './Typed';
import * as Node from './Node';
import * as Location from './Location';
import * as Null from './ion/Null';
import * as Type from './Type';
import * as _Array from './ion/Array';
import * as Property from './Property';
import * as SpreadElement from './SpreadElement';
import * as Statement from './Statement';
export declare class ElementExpression implements _Object.Object, Expression.Expression, Typed.Typed, Node.Node {
    readonly location: Location.Location | Null.Null;
    readonly type: Type.Type | Null.Null;
    readonly kind: Expression.Expression;
    readonly close: Expression.Expression | Null.Null;
    readonly properties: _Array.Array<Property.Property | SpreadElement.SpreadElement>;
    readonly children: _Array.Array<Expression.Expression | (SpreadElement.SpreadElement | Statement.Statement)>;
    static readonly id = "ElementExpression";
    static readonly implements: Set<string>;
    constructor({ location, type, kind, close, properties, children }: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        kind: Expression.Expression;
        close?: Expression.Expression | Null.Null;
        properties: _Array.Array<Property.Property | SpreadElement.SpreadElement>;
        children: _Array.Array<Expression.Expression | (SpreadElement.SpreadElement | Statement.Statement)>;
    });
    patch(properties: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        kind?: Expression.Expression;
        close?: Expression.Expression | Null.Null;
        properties?: _Array.Array<Property.Property | SpreadElement.SpreadElement>;
        children?: _Array.Array<Expression.Expression | (SpreadElement.SpreadElement | Statement.Statement)>;
    }): ElementExpression;
    static is(value: any): value is ElementExpression;
}
export declare function isElementExpression(value: any): value is ElementExpression;
export default ElementExpression;
