/**
 * Copyright IBM Corp. 2024, 2025
 */
import { APICAssetInfo } from "../../apic-mode/models/apic-asset-info.model.js";
import { APICFileInfo } from "../../apic-mode/models/apic-file-info.model.js";
import { APICProject } from "../../apic-mode/models/apic-project.model.js";
import { AssetInfo } from "../../lfs/models/asset-info.model.js";
import { Project } from "../../lfs/models/project.model.js";
import { VCSAssetInfo } from "../../vcs/models/vcs-asset-info.model.js";
import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js";
import { VCSProject } from "../../vcs/models/vcs-project.model.js";
export interface PathDependencyModel {
    key: string;
    fileHandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo;
}
export interface AssetDependencyInfo {
    assetInfo: AssetInfo | VCSAssetInfo | APICAssetInfo;
    absolutePath: string;
    rootDirAlias: string;
    projectName: string;
    pathReferences: PathDependencyModel[];
}
export interface AssetDependencies {
    apis: AssetDependencyInfo[];
    policies: AssetDependencyInfo[];
}
export interface AssetDependencyContext {
    data: AssetDependencies;
}
export interface AssetDependencyActions {
    loadAssetDependencies: () => Promise<void>;
    addAssetDependency: (assetInfo: AssetDependencyInfo) => void;
    removeDependentAsset: (assetInfo: AssetDependencyInfo) => void;
    refreshProject: (project: Project | VCSProject | APICProject) => Promise<void>;
    removeProject: (project: Project | VCSProject | APICProject) => void;
}
//# sourceMappingURL=asset-dependency.model.d.ts.map