import { ClientError, SapMessage } from "../client";
import * as components from "../client/components";
import * as struct from "../client/struct";
import { ISystemConnectorBase } from "./ISystemConnectorBase";
import { RESTConnection } from "./RESTConnection";
import { RFCConnection } from "./RFCConnection";
import { SystemConnectorSupportedBulk } from "./SystemConnectorSupportedBulk";
export interface ISystemConnector extends ISystemConnectorBase {
    supportedBulk: SystemConnectorSupportedBulk;
    isStateless: boolean;
    getNewConnection(): ISystemConnector;
    getConnectionData: () => RFCConnection | RESTConnection;
    getDest: () => string;
    getLogonLanguage: (c: boolean) => string;
    getLogonUser: () => string;
    connect: (silent: boolean) => Promise<void>;
    closeConnection: () => Promise<void>;
    checkConnection: () => Promise<boolean>;
    ping: () => Promise<string>;
    getFileSystem: () => Promise<struct.FILESYS>;
    getDirTrans: () => Promise<components.PFEVALUE>;
    getBinaryFile: (filePath: string) => Promise<Buffer>;
    writeBinaryFile: (filePath: string, binary: Buffer) => Promise<void>;
    createTocTransport: (text: components.AS4TEXT, target: components.TR_TARGET) => Promise<components.TRKORR>;
    createWbTransport: (text: components.AS4TEXT, target?: components.TR_TARGET) => Promise<components.TRKORR>;
    createCustTransport: (text: components.AS4TEXT, target?: components.TR_TARGET) => Promise<components.TRKORR>;
    setTransportDoc: (trkorr: components.TRKORR, doc: struct.TLINE[]) => Promise<void>;
    removeComments: (trkorr: components.TRKORR, object: components.TROBJTYPE) => Promise<void>;
    addToTransportRequest: (trkorr: components.TRKORR, content: struct.E071[], lock: boolean) => Promise<void>;
    repositoryEnvironment: (objectType: components.SEU_OBJ, objectName: components.SOBJ_NAME) => Promise<struct.SENVI[]>;
    deleteTrkorr: (trkorr: components.TRKORR) => Promise<void>;
    releaseTrkorr: (trkorr: components.TRKORR, lock: boolean, timeout?: number) => Promise<void>;
    readTmsQueue: (target: components.TMSSYSNAM) => Promise<struct.STMSIQREQ[]>;
    createPackage: (scompkdtln: struct.SCOMPKDTLN) => Promise<void>;
    getDefaultTransportLayer: () => Promise<components.DEVLAYER>;
    tadirInterface: (tadir: struct.TADIR) => Promise<void>;
    dequeueTransport: (trkorr: components.TRKORR) => Promise<void>;
    forwardTransport: (trkorr: components.TRKORR, target: components.TMSSYSNAM, source: components.TMSSYSNAM, importAgain: boolean) => Promise<void>;
    importTransport: (trkorr: components.TRKORR, system: components.TMSSYSNAM) => Promise<void>;
    setInstallDevc: (installDevc: struct.ZTRM_INSTALLDEVC[]) => Promise<void>;
    getObjectsList: () => Promise<struct.KO100[]>;
    renameTransportRequest: (trkorr: components.TRKORR, as4text: components.AS4TEXT) => Promise<void>;
    addTranslationToTr: (trkorr: components.TRKORR, devclassFilter: struct.LXE_TT_PACKG_LINE[]) => Promise<void>;
    trCopy: (from: components.TRKORR, to: components.TRKORR, doc: boolean) => Promise<void>;
    getTransportObjectsBulk?: (trkorr: components.TRKORR) => Promise<struct.TADIR[]>;
    getExistingObjectsBulk?: (objects: struct.TADIR[]) => Promise<struct.TADIR[]>;
    addNamespace: (namespace: components.NAMESPACE, replicense: components.TRNLICENSE, texts: struct.TRNSPACETT[]) => Promise<void>;
    getMessage: (data: SapMessage) => Promise<string>;
    deleteTmsTransport: (trkorr: components.TRKORR, system: components.TMSSYSNAM) => Promise<void>;
    refreshTransportTmsTxt: (trkorr: components.TRKORR) => Promise<void>;
    getDotAbapgit: (devclass: components.DEVCLASS) => Promise<Buffer>;
    getAbapgitSource: (devclass: components.DEVCLASS) => Promise<{
        zip: Buffer;
        objects: struct.ZTY_SER_OBJ[];
    }>;
    executePostActivity: (data: Buffer, pre?: boolean) => Promise<{
        messages: struct.SYMSG[];
        execute?: boolean;
    }>;
    isServerApisAllowed: () => Promise<true | ClientError>;
    changeTrOwner: (trkorr: components.TRKORR, owner: components.TR_AS4USER) => Promise<void>;
    createLogPolling: (event: components.ZTRM_POLLING_EVENT) => Promise<components.ZTRM_POLLING_ID>;
    deleteLogPolling: (logID: components.ZTRM_POLLING_ID) => Promise<void>;
    readLogPolling: (logID: components.ZTRM_POLLING_ID) => Promise<components.ZTRM_POLLING_LAST_MSG>;
    getTransportImportStatus: (trkorr: components.TRKORR, system: components.TMSSYSNAM) => Promise<struct.TPSTAT>;
    getObjectsLocks: (objects: struct.TADIR_KEY[]) => Promise<struct.ZTRM_OBJ_LOCK[]>;
    updateTrmPackageData: (data: any) => Promise<void>;
    getTransportTargets: () => Promise<components.TARSYSTEM[]>;
}
