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

import JSZip from "jszip";
import { Project } from "../../lfs/models/project.model.js";
import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js";
import { VCSProject } from "../../vcs/models/vcs-project.model.js";
import { APICFileInfo } from "../../apic-mode/models/apic-file-info.model.js";
import { APICProject } from "../../apic-mode/models/apic-project.model.js";

export interface ITestHandler {
    createZip(content: string, active: Project | VCSProject | APICProject, projects: (Project | VCSProject | APICProject)[]):Promise<JSZip>;
    test(finalZip: any) : Promise<any>;
    fetchFileContent(apifilehandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo, isVCS: boolean): Promise<string | null>;
    extractAssertionsFromZip(zip: JSZip, assertionIndex: number):Promise<any>;
    /**
     * Checks if the input argument is a valid number and if yes, converts it to number format.
     * If not the input string is returned back.
     */
    parseIfNumber(value: string | number): string | number;
    trace(body: any, token: any) : Promise<any>;
    getCaptureId(body: any, token: any) : Promise<any>;
}
