import * as _Object from './ion/Object';
import * as Scope from './Scope';
import * as Node from './Node';
import * as Location from './Location';
import * as Null from './ion/Null';
import * as Declarator from './Declarator';
import * as _Array from './ion/Array';
import * as Statement from './Statement';
export declare class Program implements _Object.Object, Scope.Scope, Node.Node {
    readonly location: Location.Location | Null.Null;
    readonly id: Declarator.Declarator;
    readonly body: _Array.Array<Statement.Statement>;
    static readonly id = "Program";
    static readonly implements: Set<string>;
    constructor({ location, id, body }: {
        location?: Location.Location | Null.Null;
        id: Declarator.Declarator;
        body: _Array.Array<Statement.Statement>;
    });
    patch(properties: {
        location?: Location.Location | Null.Null;
        id?: Declarator.Declarator;
        body?: _Array.Array<Statement.Statement>;
    }): Program;
    static is(value: any): value is Program;
}
export declare function isProgram(value: any): value is Program;
export default Program;
