import * as _Object from './ion/Object';
import * as Pattern from './Pattern';
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';
export declare class ArrayPattern implements _Object.Object, Pattern.Pattern, Typed.Typed, Node.Node {
    readonly location: Location.Location | Null.Null;
    readonly type: Type.Type | Null.Null;
    readonly elements: _Array.Array<Pattern.Pattern | Null.Null>;
    static readonly id = "ArrayPattern";
    static readonly implements: Set<string>;
    constructor({ location, type, elements }: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        elements: _Array.Array<Pattern.Pattern | Null.Null>;
    });
    patch(properties: {
        location?: Location.Location | Null.Null;
        type?: Type.Type | Null.Null;
        elements?: _Array.Array<Pattern.Pattern | Null.Null>;
    }): ArrayPattern;
    static is(value: any): value is ArrayPattern;
}
export declare function isArrayPattern(value: any): value is ArrayPattern;
export default ArrayPattern;
