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