import {
    GenericHttpResponse,
    HttpResponse,
    RequestOptions
} from "@talentsoft-opensource/integration-widget-contract";
import { SecurityMode } from "../securityModes/securityMode";

/**
 * This objects allows the viewer to simulate the talentsoft behavior. You can either mock
 */
export interface HostMock {
    proxyMode?: boolean;
    secretKey?: string;
    login?: string;
    employeeNumber?: string;
    securityMode?: SecurityMode;
    configuration?: Record<string, string>;
    requestExternalResource?: (
        options: RequestOptions
    ) => Promise<HttpResponse>;
    requestInternalResource?: (
        options: RequestOptions
    ) => Promise<HttpResponse>;
    downloadExternalResource?: (
        options: RequestOptions
    ) => Promise<HttpResponse>;
    requestInternalResourceAsArrayBuffer?: (
        options: RequestOptions
    ) => Promise<GenericHttpResponse<ArrayBuffer>>;
    loadData?: () => Promise<object[]>;
    getAutoConnectUrl?: (url: string) => string;
    getPreloadedResources?: (language: string) => Record<string, string>;
}
