import { Constructor } from "./../../Constructor";
import { Node } from "./../common";
import { Scope } from "./../common/Scope";
import { ModifierableNode } from "./ModifierableNode";
export declare type ScopedNodeExtensionType = Node & ModifierableNode;
export interface ScopedNode {
    /**
     * Gets the scope.
     */
    getScope(): Scope;
    /**
     * Sets the scope.
     * @param scope - Scope to set to.
     */
    setScope(scope: Scope): this;
    /**
     * Gets if the node has a scope keyword.
     */
    hasScopeKeyword(): boolean;
}
export declare function ScopedNode<T extends Constructor<ScopedNodeExtensionType>>(Base: T): Constructor<ScopedNode> & T;
