import { AbstractRegistry } from "../registry";
import * as components from "../client/components";
import * as struct from "../client/struct";
import { TrmPackage } from "../trmPackage";
import { InstallPackage } from "./InstallPackage";
import { ObjectDependencies, PackageDependencies } from "../dependencies";
export interface ISystemConnectorBase {
    getTransportStatus: (trkorr: components.TRKORR) => Promise<string>;
    getSourceTrkorr: () => Promise<components.TRKORR[]>;
    getIgnoredTrkorr: () => Promise<components.TRKORR[]>;
    getObject: (pgmid: components.PGMID, object: components.TROBJTYPE, objName: components.SOBJ_NAME) => Promise<struct.TADIR>;
    getInstalledPackages: (refresh?: boolean, includeLocals?: boolean, filter?: {
        name: string;
        registry: string;
    }) => Promise<TrmPackage[]>;
    getDevclass: (devclass: components.DEVCLASS) => Promise<struct.TDEVC>;
    getSubpackages: (devclass: components.DEVCLASS) => Promise<struct.TDEVC[]>;
    getDevclassObjects: (devclass: components.DEVCLASS, includeSubpackages: boolean) => Promise<struct.TADIR[]>;
    getInstallPackages: (packageName: string, registry: AbstractRegistry) => Promise<InstallPackage[]>;
    setPackageSuperpackage: (devclass: components.DEVCLASS, superpackage: components.DEVCLASS) => Promise<void>;
    clearPackageSuperpackage: (devclass: components.DEVCLASS) => Promise<void>;
    setPackageTransportLayer: (devclass: components.DEVCLASS, devlayer: components.DEVLAYER) => Promise<void>;
    checkSapEntryExists: (table: string, sapEntry: any) => Promise<boolean>;
    getPackageIntegrity: (oPackage: TrmPackage) => Promise<string>;
    getFunctionModule: (func: components.RS38L_FNAME) => Promise<struct.TFDIR>;
    getExistingObjects: (objects: struct.TADIR[]) => Promise<struct.TADIR[]>;
    getNamespace: (namespace: components.NAMESPACE) => Promise<{
        trnspacet: struct.TRNSPACET;
        trnspacett: struct.TRNSPACETT[];
    }>;
    getR3transVersion: () => Promise<string>;
    getR3transUnicode: () => Promise<boolean>;
    isTransportLayerExist: (devlayer: components.DEVLAYER) => Promise<boolean>;
    getTrmServerPackage: () => Promise<TrmPackage>;
    getTrmRestPackage: () => Promise<TrmPackage>;
    readClassDescriptions: (clsname: components.SEOCLSNAME) => Promise<struct.SEOCLASSTX[]>;
    getPackageDependencies: (devclass: components.DEVCLASS, includeSubPackages: boolean) => Promise<PackageDependencies>;
    getObjectDependencies: (object: components.TROBJTYPE, objName: components.SOBJ_NAME) => Promise<ObjectDependencies>;
    getTableKeys: (tabname: components.TABNAME) => Promise<struct.DD03L[]>;
    getRootDevclass: (devclass: components.DEVCLASS) => Promise<components.DEVCLASS>;
    getTimezone: () => Promise<string>;
}
