import type { SidePattern } from '../generated/ast.js'; /** * Pattern constants for programmatic use. * Values match the AST $type names. */ export declare const Pattern: { readonly OHS: "OpenHostService"; readonly PL: "PublishedLanguage"; readonly CF: "Conformist"; readonly ACL: "AntiCorruptionLayer"; readonly S: "Supplier"; readonly C: "Customer"; readonly BBoM: "BigBallOfMud"; readonly SK: "SharedKernel"; readonly P: "Partnership"; readonly SW: "SeparateWays"; }; /** * Mapping from short abbreviation to full $type name. * Derived from the Pattern constant. */ export declare const PatternFullName: Record; /** * Mapping from $type name to short abbreviation. * Derived as the inverse of Pattern. */ export declare const PatternAbbreviation: Record; /** * All short+long forms that map to a given canonical $type name. * Derived from the Pattern constant — keyed by both abbreviation and full name. */ export declare const PatternAliases: Record; /** Union of all pattern type names */ export type IntegrationPattern = typeof Pattern[keyof typeof Pattern]; /** * Checks if a pattern name matches an expected pattern. * Works with both $type names and short abbreviations. */ export declare function matchesPattern(actual: string, expected: string): boolean; /** Side patterns that belong on the upstream side */ export declare const UpstreamPatterns: readonly string[]; /** Side patterns that belong on the downstream side */ export declare const DownstreamPatterns: readonly string[]; /** Symmetric patterns (mutual) */ export declare const SymmetricPatterns: readonly string[]; /** * Checks if a side pattern AST node is an upstream pattern. */ export declare function isUpstreamSidePattern(pattern: SidePattern): boolean; /** * Checks if a side pattern AST node is a downstream pattern. */ export declare function isDownstreamSidePattern(pattern: SidePattern): boolean; /** * Checks if a side pattern AST node is a Big Ball of Mud. */ export declare function isBBoMSidePattern(pattern: SidePattern): boolean; /** * Checks if a pattern string name is an upstream pattern. */ export declare function isUpstreamPattern(pattern: string): boolean; /** * Checks if a pattern string name is a downstream pattern. */ export declare function isDownstreamPattern(pattern: string): boolean; /** * Checks if a pattern string name is a mutual/symmetric pattern. */ export declare function isMutualPattern(pattern: string): boolean; /** * Gets the short abbreviation for a pattern $type name. */ export declare function getPatternAbbreviation(typeName: string): string;