import type * as c4 from '@likec4/core';
import { type ParsedAstDeployment, type ParsedAstDeploymentRelation, ast } from '../../ast';
import type { WithExpressionV2 } from './FqnRefParser';
export type WithDeploymentModel = ReturnType<typeof DeploymentModelParser>;
export declare function DeploymentModelParser<TBase extends WithExpressionV2>(B: TBase): {
    new (...args: any[]): {
        parseDeployment(): void;
        parseDeploymentNode(astNode: ast.DeploymentNode): ParsedAstDeployment.Node;
        parseDeployedInstance(astNode: ast.DeployedInstance): ParsedAstDeployment.Instance;
        parseDeploymentRelation(astNode: ast.DeploymentRelation): ParsedAstDeploymentRelation;
        parseFqnRef(astNode: ast.FqnRef): c4.FqnRef;
        parseFqnExpr(astNode: ast.FqnExpr): c4.FqnExpr;
        parseFqnRefExpr(astNode: ast.FqnRefExpr): c4.FqnExpr.NonWildcard;
        parseElementWhereExpr(astNode: ast.ElementPredicateWhereV2): c4.RelationExpr;
        parseFqnExpressions(astNode: ast.FqnExpressions): c4.FqnExpr[];
        parseRelationWhereExpr(astNode: ast.RelationPredicateWhereV2): c4.RelationExpr;
        parseRelationExpr(astNode: ast.RelationExpr): c4.RelationExpr;
        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;
    };
} & TBase;
