import * as AdmZip from "adm-zip";
import { Credentials, ServiceKeys } from "../models/Types";
import { CFConfig, Space, Organization, CFApp, RequestArguments } from "../models/FDCModels";
import { Manifest } from "../models/Manifest";
export default class FDCService {
    html5RepoRuntimeGuid: string;
    manifests: any[];
    private CF_HOME;
    private WIN32;
    private HOMEDRIVE;
    private HOMEPATH;
    private TARGET;
    private ACCESS_TOKEN;
    private BEARER_SPACE;
    private ORGANIZATION_FIELDS;
    private SPACE_FIELDS;
    private CF_FOLDER_NAME;
    private CONFIG_JSON_FILE;
    private API_CF;
    private OK;
    private HTML5_APPS_REPO;
    private MTA_YAML_FILE;
    private cfConfig;
    private vscode;
    constructor();
    isCfInstalled(): Promise<boolean>;
    loadConfig(): void;
    isLoggedIn(): Promise<boolean>;
    isExternalLoginEnabled(): Promise<boolean>;
    isLoggedInToDifferentSource(organizacion: string, space: string, apiurl: string): Promise<boolean>;
    login(username: string, password: string, apiEndpoint: string): Promise<boolean>;
    getOrganizations(): Promise<Organization[]>;
    getSpaces(spaceGuid: string): Promise<Space[]>;
    setOrgSpace(orgName: string, spaceName: string): Promise<void>;
    getServices(projectPath: string): Promise<string[]>;
    getBaseApps(credentials: Credentials[], includeInvalid?: boolean): Promise<CFApp[]>;
    hasApprouter(projectName: string, moduleNames: string[]): boolean;
    getManifestByBaseAppId(appId: string): any;
    getApprouterType(): string;
    getModuleNames(mtaProjectPath: string): string[];
    formatDiscovery(app: any): string;
    getConfig(): CFConfig;
    getBusinessServiceKeys(businessService: string): Promise<ServiceKeys>;
    validateODataEndpoints(zipEntries: AdmZip.IZipEntry[], credentials: Credentials[]): Promise<string[]>;
    private extractXSApp;
    private extractManifest;
    private matchRoutesAndDatasources;
    private getAppHostIds;
    private filterServices;
    normalizeRouteRegex(value: string): RegExp;
    getFDCRequestArguments(): RequestArguments;
    private getFDCApps;
    private getValidatedApps;
    private validateSelectedApp;
    validateSmartTemplateApplication(manifest: Manifest): Promise<string[]>;
    private readMta;
    private getResources;
    private getServicesForFile;
    private getHomedir;
}
