import type * as c4 from '@likec4/core';
import { ast } from '../../ast';
import { type Base } from './Base';
export type WithPredicates = ReturnType<typeof PredicatesParser>;
export declare function PredicatesParser<TBase extends Base>(B: TBase): {
    new (...args: any[]): {
        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;
    };
} & TBase;
