/**
 * Copyright IBM Corp. 2024, 2025
 */

import { AssetInfo } from "../../lfs/models/asset-info.model.js";
import { Project } from "../../lfs/models/project.model.js";
import { VCSProject } from "../../vcs/models/vcs-project.model.js";
import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js";
import { Scope } from "../../scopes/IScopeHandler.js";
import { APICProject } from "../../apic-mode/models/apic-project.model.js";
import { APICFileInfo } from "../../apic-mode/models/apic-file-info.model.js";

export interface ApiScopeInfo extends Omit<AssetInfo, 'nameSpace'> {
    project: Project | VCSProject | APICProject;
    apiFileHandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo;
    nameSpace?: string;
}

export type ApiScopeStoreModel = {
    enableScopes: boolean;
    apiScopes: Array<ApiScopeInfo>;
    activeScope: { index: number, data: Scope | null }
}