/**
 * Resource Registry exports
 */

export { ResourceCategorySchema, ResourceLinkSchema, kindPrefix, validateNodeId } from './resource-link'
export type { ResourceCategory, ResourceLink } from './resource-link'

export { RESERVED_RESOURCE_IDS, SYSTEM_RESOURCE_IDS, isReservedResourceId } from './reserved'

export { ResourceRegistry } from './resource-registry'
export type { DeploymentSpec, OrganizationRegistry, RemoteOrgConfig, SystemConfig } from './resource-registry'

// Validation utilities
export {
  validateDeploymentSpec,
  validateRelationships,
  validateExecutionInterface,
  validateResourceGovernance,
  validateDeclaredSystemInterfaceReadiness,
  detectMissingApiInterfaceDeclarations,
  RegistryValidationError
} from './validation'
export {
  computeInterfaceReadiness,
  SystemInterfaceReadinessError
} from '../../business/acquisition/ontology-validation'
export type {
  ResourceGovernanceModel,
  ResourceGovernanceValidationIssue,
  ResourceGovernanceValidationIssueType,
  ResourceGovernanceValidationOptions,
  ResourceGovernanceValidationResult,
  ResourceValidatorMode,
  SystemInterfaceReadinessValidationIssue,
  SystemInterfaceReadinessValidationResult
} from './validation'
export type {
  SystemInterfaceReadinessIssue,
  SystemInterfaceReadinessIssueFamily,
  SystemInterfaceReadinessRequest,
  SystemInterfaceReadinessResult
} from '../../business/acquisition/ontology-validation'

export { bindResourceDescriptor } from './types'
export type { ApiInterfaceConformanceGap } from './types'

// Serialization utilities
export { serializeAllOrganizations, serializeOrganization, buildEdges } from './serialization'

// Types
export type {
  ResourceStatus,
  ResourceType,
  ExecutableResourceType,
  ResourceDefinition,
  RuntimeResourceDescriptor,
  DescriptorBackedResourceDefinition,
  BoundResourceDefinition,
  ResourceList,
  TriggerDefinition,
  IntegrationDefinition,
  RelationshipDeclaration,
  ResourceRelationships,
  ExternalPlatform,
  ExternalResourceDefinition,
  HumanCheckpointDefinition,
  WebhookProviderType,
  WebhookTriggerConfig,
  ScheduleTriggerConfig,
  EventTriggerConfig,
  TriggerConfig
} from './types'

// Serialized Types (for API responses)
export type {
  SerializedAgentDefinition,
  SerializedWorkflowDefinition,
  SerializedOrganizationData
} from './serialized-types'

// Command View Types (for graph visualization)
export type {
  CommandViewAgent,
  CommandViewWorkflow,
  CommandViewNode,
  CommandViewNodeType,
  CommandViewEdge,
  CommandViewData,
  RelationshipType
} from './command-view'

// Command View Utilities
export {
  isAgent,
  isWorkflow,
  isTrigger,
  isIntegration,
  isExternalResource,
  isHumanCheckpoint,
  getNodeId,
  getNodeType
} from './command-view'

// Command View Stats types (moved from command-view/)
export type {
  StatsTimeRange,
  ResourceStats,
  ResourceErrorsResponse,
  ErrorSummary,
  CommandViewExecution,
  ResourceExecutionsResponse,
  HumanCheckpointStats,
  CommandViewStatsResponse
} from './stats-types'

// Resource Metadata (icon names, colors)
export type { ResourceDefinitionType, NodeColorType } from './resource-metadata'
export { resourceTypeIconNames, resourceTypeColors, getResourceIconName, getResourceColor } from './resource-metadata'
