import { APICFileInfo } from '../../apic-mode/models/apic-file-info.model.js';
import { VCSFileInfo } from '../../vcs/models/vcs-file-info.model.js';
import { OperationsMetadata } from './asset-metadata.model.js';

/**
 * Copyright IBM Corp. 2024, 2025
 */
export type AssetInfo = {
  name: string;
  nameSpace: string;
  version: string;
  fileHandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo;
  kind: string;
  description?: string;
  tags?: string[];
  content?: string | object;
  labels?: {
    gatewayTypes: string[];
  };
  apiVersion?: string;
};

export type MetadataInfo = {
  name: string;
  nameSpace: string;
  version: string;
};

export type OperationWithAssetInfo = AssetInfo & {
  operations?: OperationsMetadata[];
};
