import type * as c4 from '@likec4/core';
import { ast, type ParsedAstGlobals } from '../../ast';
import type { WithViewsParser } from './ViewsParser';
export declare function GlobalsParser<TBase extends WithViewsParser>(B: TBase): {
    new (...args: any[]): {
        parseGlobals(): void;
        parseAndStoreGlobalPredicateGroupOrDynamic(astRule: ast.GlobalPredicateGroup | ast.GlobalDynamicPredicateGroup, id: c4.GlobalPredicateId, c4Globals: ParsedAstGlobals): void;
        parseGlobalPredicateGroup(astRule: ast.GlobalPredicateGroup): c4.ViewRulePredicate[];
        parseGlobalDynamicPredicateGroup(astRule: ast.GlobalDynamicPredicateGroup): c4.DynamicViewIncludeRule[];
        parseGlobalStyleOrGroup(astRule: ast.GlobalStyle | ast.GlobalStyleGroup): c4.ViewRuleStyle[];
        parseViews(): void;
        parseElementView(astNode: ast.ElementView, additionalStyles: c4.ViewRuleStyleOrGlobalRef[]): import("../../ast").ParsedAstElementView;
        parseViewRule(astRule: ast.ViewRule): c4.ViewRule;
        parseViewRulePredicate(astNode: ast.ViewRulePredicate): c4.ViewRulePredicate;
        parseViewRuleGlobalPredicateRef(astRule: ast.ViewRuleGlobalPredicateRef | ast.DynamicViewGlobalPredicateRef): c4.ViewRuleGlobalPredicateRef;
        parseViewRuleStyleOrGlobalRef(astRule: ast.ViewRuleStyleOrGlobalRef): c4.ViewRuleStyleOrGlobalRef;
        parseViewRuleGroup(astNode: ast.ViewRuleGroup): c4.ViewRuleGroup;
        parseViewRuleStyle(astRule: ast.ViewRuleStyle | ast.GlobalStyle): c4.ViewRuleStyle;
        parseRuleStyle(styleProperties: ast.StyleProperty[], elementExpressionsIterator: ast.ElementExpressionsIterator, notationProperty?: ast.NotationProperty): c4.ViewRuleStyle;
        parseViewRuleGlobalStyle(astRule: ast.ViewRuleGlobalStyle): c4.ViewRuleGlobalStyle;
        parseDynamicElementView(astNode: ast.DynamicView, additionalStyles: c4.ViewRuleStyleOrGlobalRef[]): import("../../ast").ParsedAstDynamicView;
        parseDynamicViewRule(astRule: ast.DynamicViewRule): c4.DynamicViewRule;
        parseDynamicViewIncludePredicate(astRule: ast.DynamicViewIncludePredicate): c4.DynamicViewIncludeRule;
        parseDynamicParallelSteps(node: ast.DynamicViewParallelSteps): c4.DynamicViewParallelSteps;
        parseDynamicStep(node: ast.DynamicViewStep): c4.DynamicViewStep;
        parsePredicate(astNode: ast.Predicate): c4.Expression;
        parseElementPredicate(astNode: ast.ElementPredicate): c4.ElementPredicateExpression;
        parseElementExpressionsIterator(astNode: ast.ElementExpressionsIterator): c4.ElementExpression[];
        parseElementExpression(astNode: ast.ElementExpression): c4.ElementExpression;
        parseElementPredicateWhere(astNode: ast.ElementPredicateWhere): c4.ElementWhereExpr;
        parseElementPredicateWith(astNode: ast.ElementPredicateWith): c4.CustomElementExpr;
        parseRelationPredicate(astNode: ast.RelationPredicate): c4.RelationPredicateExpression;
        parseRelationPredicateWhere(astNode: ast.RelationPredicateWhere): c4.RelationWhereExpr;
        parseRelationPredicateWith(astNode: ast.RelationPredicateWith, relation: c4.RelationExpression | c4.RelationWhereExpr): c4.CustomRelationExpr;
        parseRelationExpression(astNode: ast.RelationExpression): c4.RelationExpression;
        isValid: import("../../validation").IsValidFn;
        readonly services: import("../..").LikeC4Services;
        readonly doc: import("../../ast").ParsedLikeC4LangiumDocument;
        resolveFqn(node: ast.FqnReferenceable): c4.Fqn;
        getAstNodePath(node: c4): any;
        getMetadata(metadataAstNode: ast.MetadataProperty | undefined): {
            [key: string]: string;
        } | undefined;
        convertTags<E extends {
            tags?: ast.Tags;
        }>(withTags?: E | undefined): any;
        parseTags<E extends {
            tags?: ast.Tags;
        }>(withTags?: E): c4.NonEmptyArray<c4.Tag> | null;
        convertLinks(source?: ast.LinkProperty["$container"]): import("../../ast").ParsedLink[] | undefined;
        parseLinks(source?: ast.LinkProperty["$container"]): import("../../ast").ParsedLink[] | undefined;
        parseDeploymentView(astNode: ast.DeploymentView): import("../../ast").ParsedAstDeploymentView;
        parseDeploymentViewRule(astRule: ast.DeploymentViewRule): c4.DeploymentViewRule;
        parseDeploymentViewRulePredicate(astRule: ast.DeploymentViewRulePredicate): c4.DeploymentViewRulePredicate;
        parseDeploymentViewRuleStyle(astRule: ast.DeploymentViewRuleStyle): c4.DeploymentViewRuleStyle;
        parseFqnRef(astNode: ast.FqnRef): c4.FqnRef;
        parseFqnExpr(astNode: ast.FqnExpr): c4.FqnExpr;
        parseFqnRefExpr(astNode: ast.FqnRefExpr): c4.FqnExpr.NonWildcard;
        parseFqnExpressions(astNode: ast.FqnExpressions): c4.FqnExpr[];
        parseRelationWhereExpr(astNode: ast.RelationPredicateWhereV2): c4.RelationExpr;
        parseRelationExpr(astNode: ast.RelationExpr): c4.RelationExpr;
        parseDeployment(): void;
        parseDeploymentNode(astNode: ast.DeploymentNode): import("../../ast").ParsedAstDeployment.Node;
        parseDeployedInstance(astNode: ast.DeployedInstance): import("../../ast").ParsedAstDeployment.Instance;
        parseDeploymentRelation(astNode: ast.DeploymentRelation): import("../../ast").ParsedAstDeploymentRelation;
    };
} & TBase;
