import * as _Object from './ion/Object';
import * as Variable from './Variable';
import * as Declaration from './Declaration';
import * as Typed from './Typed';
import * as Node from './Node';
import * as Statement from './Statement';
import * as Exportable from './Exportable';
import * as Location from './Location';
import * as Null from './ion/Null';
import * as Type from './Type';
import * as Pattern from './Pattern';
import * as Expression from './Expression';
import * as Integer from './ion/Integer';
import * as String from './ion/String';
import * as Identifier from './Identifier';
import * as Boolean from './ion/Boolean';
export declare class VariableDeclaration implements _Object.Object, Variable.Variable, Declaration.Declaration, Typed.Typed, Node.Node, Statement.Statement, Exportable.Exportable {
    readonly location: Location.Location | Null.Null;
    readonly type: Type.Type | Null.Null;
    readonly id: Pattern.Pattern | Expression.Expression;
    readonly value: Expression.Expression | Null.Null;
    readonly export: Integer.Integer;
    readonly kind: String.String;
    readonly static: Identifier.Identifier | Null.Null;
    readonly instance: Boolean.Boolean;
    readonly inherited: Boolean.Boolean;
    static readonly id = "VariableDeclaration";
    static readonly implements: Set<string>;
    constructor({ location, type, id, value, export: _export, kind, static: _static, instance, inherited }: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        id: Pattern.Pattern | Expression.Expression;
        value?: Expression.Expression | Null.Null;
        export?: Integer.Integer;
        kind: String.String;
        static?: Identifier.Identifier | Null.Null;
        instance?: Boolean.Boolean;
        inherited?: Boolean.Boolean;
    });
    patch(properties: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        id?: Pattern.Pattern | Expression.Expression;
        value?: Expression.Expression | Null.Null;
        export?: Integer.Integer;
        kind?: String.String;
        static?: Identifier.Identifier | Null.Null;
        instance?: Boolean.Boolean;
        inherited?: Boolean.Boolean;
    }): VariableDeclaration;
    static is(value: any): value is VariableDeclaration;
}
export declare function isVariableDeclaration(value: any): value is VariableDeclaration;
export default VariableDeclaration;
