// src/core/composite/IChildInfo.ts

import type { MatrixActor } from '../MatrixActor';

/**
 * Internal child tracking info.
 * Note: ChildManager handles address-only tracking per Actor Model.
 * This structure adds component refs needed for framework internals.
 */
export interface IChildInfo {
  id: string;
  component: MatrixActor;
  slot: string;
  mount: string;
  unsubs: Set<() => void>;
  /** Whether this child was created dynamically */
  isDynamic?: boolean;
  /** Shell tag for dynamic children */
  shellTag?: string;
  /** Hash of the code used to create dynamic children */
  codeHash?: string;
  /** When this child was created */
  createdAt?: number;
  /** Declarative event bindings: { eventName: 'handlerMethodName' } */
  bindings?: Record<string, string>;
}
