import { TADIR, TDEVC } from "../client/struct";
import { TrmPackage } from "../trmPackage";
import { InstallPackage } from "./InstallPackage";
import * as components from "../client/components";
import * as struct from "../client/struct";
import { ISystemConnectorBase } from "./ISystemConnectorBase";
import { AbstractRegistry } from "../registry";
import { ObjectDependencies, PackageDependencies } from "../dependencies";
export declare const TRM_SERVER_PACKAGE_NAME: string;
export declare const TRM_SERVER_INTF: string;
export declare const TRM_REST_INTF: string;
export declare const TRM_REST_PACKAGE_NAME: string;
export declare const SRC_TRKORR_TABL = "/ATRM/SRC_TRKORR";
export declare const SKIP_TRKORR_TABL = "/ATRM/SKIPTRKORR";
export declare const INSTALL_DEVCLASS_VIEW = "/ATRM/V_INSTDEVC";
export declare abstract class SystemConnectorBase implements ISystemConnectorBase {
    private _installedPackages;
    private _sourceTrkorr;
    private _ignoredTrkorr;
    private _r3transInfoLog;
    private _tableKeys;
    private _rootDevclass;
    private _timezone;
    protected abstract readTable(tableName: components.TABNAME, fields: struct.RFC_DB_FLD[], options?: string): Promise<any[]>;
    protected abstract getSysname(): string;
    protected abstract getLangu(c: boolean): string;
    protected abstract getTrmServerVersion(): Promise<string>;
    protected abstract getTrmRestVersion(): Promise<string>;
    protected abstract listDevclassObjects(devclass: components.DEVCLASS): Promise<struct.TADIR[]>;
    protected abstract tdevcInterface(devclass: components.DEVCLASS, parentcl?: components.DEVCLASS, rmParentCl?: boolean, devlayer?: components.DEVLAYER): Promise<void>;
    protected abstract getR3transInfo(): Promise<string>;
    protected abstract getInstalledPackagesBackend(filter?: {
        name: string;
        registry: string;
    }): Promise<struct.ZTRM_PACKAGE[]>;
    protected abstract getPackageDependenciesInternal(devclass: components.DEVCLASS, includeSubPackages: boolean, logId?: components.ZTRM_POLLING_ID): Promise<struct.ZTRM_OBJECT_DEPENDENCIES[]>;
    protected abstract getObjectDependenciesInternal(object: components.TROBJTYPE, objName: components.SOBJ_NAME): Promise<struct.ZTRM_OBJECT_DEPENDENCY[]>;
    constructor();
    getTransportStatus(trkorr: components.TRKORR): Promise<string>;
    getSourceTrkorr(refresh?: boolean): Promise<components.TRKORR[]>;
    getObject(pgmid: components.PGMID, object: components.TROBJTYPE, objName: components.SOBJ_NAME): Promise<TADIR>;
    getIgnoredTrkorr(refresh?: boolean): Promise<components.TRKORR[]>;
    getTrmServerPackage(): Promise<TrmPackage>;
    getTrmRestPackage(): Promise<TrmPackage>;
    getInstalledPackages(refresh?: boolean, includeLocals?: boolean, filter?: {
        name: string;
        registry: string;
    }): Promise<TrmPackage[]>;
    getDevclass(devclass: components.DEVCLASS): Promise<TDEVC>;
    getSubpackages(devclass: components.DEVCLASS): Promise<TDEVC[]>;
    getDevclassObjects(devclass: components.DEVCLASS, includeSubpackages?: boolean): Promise<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: string): Promise<struct.TFDIR>;
    getExistingObjects(objects: TADIR[]): Promise<TADIR[]>;
    getNamespace(namespace: components.NAMESPACE): Promise<{
        trnspacet: struct.TRNSPACET;
        trnspacett: struct.TRNSPACETT[];
    }>;
    getR3transVersion(): Promise<string>;
    getR3transUnicode(): Promise<boolean>;
    isTransportLayerExist(devlayer: components.DEVLAYER): Promise<boolean>;
    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>;
}
