/**
 * Semantic Relationship Analyzer for M2JS
 * Analyzes business entities, relationships, and workflows
 */
import { ParsedFile } from './types';
import { DependencyGraph } from './types';
export interface SemanticAnalysis {
    entities: BusinessEntity[];
    relationships: EntityRelationship[];
    workflows: BusinessWorkflow[];
    stateTransitions: StateTransition[];
    invariants: BusinessInvariant[];
}
export interface BusinessEntity {
    name: string;
    type: 'aggregate' | 'entity' | 'value-object' | 'service';
    properties: EntityProperty[];
    operations: EntityOperation[];
    description: string;
}
export interface EntityProperty {
    name: string;
    type: string;
    required: boolean;
    description?: string;
}
export interface EntityOperation {
    name: string;
    type: 'command' | 'query' | 'event';
    parameters: string[];
    returns: string;
    sideEffects: boolean;
}
export interface EntityRelationship {
    from: string;
    to: string;
    type: 'has-one' | 'has-many' | 'belongs-to' | 'uses' | 'depends-on' | 'creates' | 'validates';
    cardinality: string;
    description: string;
}
export interface BusinessWorkflow {
    name: string;
    description: string;
    steps: WorkflowStep[];
    triggers: string[];
    outcomes: string[];
}
export interface WorkflowStep {
    order: number;
    action: string;
    actor: string;
    preconditions: string[];
    postconditions: string[];
}
export interface StateTransition {
    entity: string;
    states: string[];
    transitions: Transition[];
    invariants: string[];
}
export interface Transition {
    from: string;
    to: string;
    trigger: string;
    conditions: string[];
}
export interface BusinessInvariant {
    entity: string;
    rule: string;
    enforcement: string;
    violations: string[];
}
/**
 * Analyzes semantic relationships and business domain
 */
export declare function analyzeSemanticRelationships(parsedFiles: ParsedFile[], dependencyGraph: DependencyGraph): SemanticAnalysis;
