import { TccBlobType, TccBpiDeliveryProfileType, TccBusinessType, TccC4Node, TccClarcDate, TccDataType, TccMimeType } from './shared.model';
export declare namespace TccET_BPI {
    interface BpiCredentialsUserPassword {
        Password: string;
        User: string;
    }
    interface Directory {
        FValue: string;
    }
    enum FileStorageFileFormat {
        ccCF_Unknown = "ccCF_Unknown",
        ccCF_ClarcDocumentJson = "ccCF_ClarcDocumentJson",
        ccCF_File = "ccCF_File",
        ccCF_Zip = "ccCF_Zip"
    }
    enum ConnectionType {
        ccBC_Direct = "ccBC_Direct",
        ccBC_CloudConnector = "ccBC_CloudConnector"
    }
    enum AfiSolutionType {
        ccAS_Invoice = "ccAS_Invoice",
        ccAS_Order = "ccAS_Order",
        ccAS_Confirmation = "ccAS_Confirmation",
        ccAS_Unknown = "ccAS_Unknown"
    }
    enum TccMsDyn365BcSolution {
        ccBS_Invoice = "ccBS_Invoice",
        ccBS_Order = "ccBS_Order",
        ccBS_Confirmation = "ccBS_Confirmation"
    }
    enum EnterpriseQueuePriority {
        ccQP_Idle = "ccQP_Idle",
        ccQP_Lowest = "ccQP_Lowest",
        ccQP_Lower = "ccQP_Lower",
        ccQP_Normal = "ccQP_Normal",
        ccQP_Higher = "ccQP_Higher",
        ccQP_Highest = "ccQP_Highest",
        ccQP_TimeCritical = "ccQP_TimeCritical"
    }
    enum EnterpriseQueueState {
        ccQS_Unknown = "ccQS_Unknown",
        ccQS_Idle = "ccQS_Idle",
        ccQS_OnHold = "ccQS_OnHold"
    }
    enum EnterpriseQueueTask {
        ccQT_Unknown = "ccQT_Unknown",
        ccQT_Xtract = "ccQT_Xtract",
        ccQT_Export = "ccQT_Export"
    }
    enum DatabaseDriver {
        ccDD_MSSQL = "ccDD_MSSQL",
        ccDD_MySQL = "ccDD_MySQL",
        ccDD_Oracle = "ccDD_Oracle",
        ccDD_ODBC = "ccDD_ODBC"
    }
    enum SapArchiveLinkScenario {
        ccAS_Unknown = "ccAS_Unknown",
        ccAS_ArchiveAndLink = "ccAS_ArchiveAndLink",
        ccAS_Barcode = "ccAS_Barcode"
    }
    enum TccEGatewayNetwork {
        ccGN_Peppol = "ccGN_Peppol",
        ccGN_Smtp = "ccGN_Smtp",
        ccGN_Ppf = "ccGN_Ppf"
    }
    interface BpiProfile extends TccC4Node {
        ConnectionType: ConnectionType;
    }
    interface SapBaseProfile {
        SystemId: string;
        GroupName: string;
        ApplicationServer: string;
        MessageServer: string;
        Credentials: BpiCredentialsUserPassword;
        Client: string;
        SapRouter: string;
        Language: string;
        SystemNumber: string;
    }
    interface SapProfile extends BpiProfile, SapBaseProfile {
    }
    interface SapArchiveLinkProfile extends BpiProfile {
        Connection: SapBaseProfile;
        Scenario: SapArchiveLinkScenario;
        FunctionModule: string;
        Repository: string;
        BlobTypeMappings: TccSapBlobTypeMappings;
    }
    type TccSapBlobTypeMappings = TccSapBlobTypeMapping[];
    interface TccSapBlobTypeMapping {
        DocuClass: string;
        ArObject: string;
        SapObject: string;
        BlobType: TccBlobType;
        MimeType: TccMimeType;
    }
    interface AfiProfile extends BpiProfile {
        SapFunctionModule: string;
        Connection: SapBaseProfile;
        Solution: AfiSolutionType;
        UnitMappings: string;
    }
    interface TccBpiEGatewayChannel {
        Country: string;
        Network: TccEGatewayNetwork;
        /**
         * string or enum -> Auswahlliste MIT freier Eingabe, z.B. 3p0p1, 1p0p0, 1p0
         */
        SpecVersion: string;
        /**
         * Netz quittiert asynchron, bei FR setzen
         */
        AwaitResponse: boolean;
        /**
         * Allways readonly, generated by the server using the other property values.
         * Valid combinations are:
         * - ccGN_Peppol + NL, BE, PL, FI, NO
         * - ccGN_Smtp + DE
         * - ccGN_Ppf + FR
         */
        ChannelId?: string;
    }
    interface EcosioProfile extends BpiProfile {
        UserId: string;
        AppKey: string;
        UserKey: string;
        ApiUrl: {
            FUriStr: string;
        };
        SenderId: string;
        Channels: TccBpiEGatewayChannel[];
    }
    interface ImapProfile extends BpiProfile {
        Port: number;
        UseTls: boolean;
        Server: string;
    }
    interface MailBoxProfile extends BpiProfile {
        Credentials: BpiCredentialsUserPassword;
        Email: string;
        ProviderType: TccBpiDeliveryProfileType;
        ProviderId: string;
        Folder: string;
    }
    interface MicrosoftGraphProfile extends BpiProfile {
        ClientId: string;
        ClientSecret: string;
        TenantId: string;
    }
    interface MicrosoftDynamics365BusinessCentralProfile extends BpiProfile {
        Credentials: BpiCredentialsUserPassword;
        Url: string;
        ConnectionType: ConnectionType;
        Solution: TccMsDyn365BcSolution;
    }
    interface FileStorageProfile extends BpiProfile {
        ProviderType: TccBpiDeliveryProfileType;
        ProviderId: string;
        FileFormat: FileStorageFileFormat;
        FileName: string;
        Path: string;
    }
    interface ClarcEnterpriseProfile extends BpiProfile {
        WarpUrl: string;
        Priority: EnterpriseQueuePriority;
        State: EnterpriseQueueState;
        Task: EnterpriseQueueTask;
        PreScriptScheme: string;
        PostScriptScheme: string;
        ConversionScheme: string;
        XtractProject: string;
        ExportService: string;
        ExportScheme: string;
        ExportDestination: string;
    }
    interface EasyEnterpriseXProfile extends BpiProfile {
        Url: {
            FUriStr: string;
        };
        Unit: string;
        Instance: string;
        Pool: string;
        Scheme: string;
        Locale: string;
        User: string;
        Password: string;
        UseBinaryLicense: boolean;
    }
    interface DatabaseProfile extends BpiProfile {
        User: string;
        Password: string;
        Dsn: string;
        Server: string;
        Database: string;
        DatabaseDriver: DatabaseDriver;
    }
    interface DatabaseQueryColumn {
        Name: string;
        Type: TccDataType;
        Index: boolean;
    }
    interface DatabaseQueryResponse {
        Count: number;
        Columns: DatabaseQueryColumn[];
        Rows: DatabaseQueryResponseRow[];
    }
    interface MasterdataQueryResponse {
        Count: number;
        Rows: Array<any>;
    }
    interface DatabaseQueryResponseRow {
        Values: Array<any>;
    }
    interface GoogleProfile extends BpiProfile {
        Certificate: string;
    }
    interface OtrisDocumentsProfile extends BpiProfile {
        AccessToken: string;
        BaseUrl: string;
        FileType: string;
    }
    enum TccSyncObjStateState {
        ccSS_Idle = "ccSS_Idle",
        ccSS_InProgress = "ccSS_InProgress",
        ccSS_Error = "ccSS_Error",
        ccSS_Warning = "ccSS_Warning"
    }
    enum TccErpType {
        ccET_SAP = "ccET_SAP",
        ccET_MS365BC = "ccET_MS365BC",
        ccET_Database = "ccET_Database"
    }
    interface ERPSync extends TccC4Node {
        ErpId: string;
        ErpType: TccErpType;
        ConnectionType: ConnectionType;
        UnitMappings: string;
        SapFunctionModules: TccBpiProfileSapFunctionModules;
        States: TccBpiProfileErpSyncStates;
        Schedules: TccSyncScheduleList[];
        SubPath: string;
    }
    interface TccBpiProfileSapFunctionModules {
        Companies: string;
        Orders: string;
        Quotes: string;
        Materials: string;
        Debitors: string;
        Creditors: string;
        SalesOrgs: string;
    }
    interface TccBpiProfileErpSyncStates {
        Companies: TccSyncObjState;
        Creditors: TccSyncObjState;
        Debitors: TccSyncObjState;
        Orders: TccSyncObjState;
        Quotes: TccSyncObjState;
        SalesOrgs: TccSyncObjState;
        Name: string;
        SubPath: string;
        System: boolean;
    }
    interface TccSyncObjState {
        LastSync: TccClarcDate;
        LastMessage: string;
        LastDuration: number;
        State: TccSyncObjStateState;
    }
    interface TccSyncScheduleList {
        Active: boolean;
        Schedule: string;
    }
    type BpiUnitMappingList = Array<BpiUnitMapping>;
    interface BpiUnitMapping {
        Unit: string;
        Value: string;
        Info: string;
        Source: string[];
    }
    interface UnitMappings extends TccC4Node {
        Items: BpiUnitMappingList;
    }
    interface Unit {
        UnitType: string;
        UnitName: string;
        UnitText: string;
    }
    interface Transformer extends TccC4Node {
        Rules: TccTransformRule;
    }
    interface TccTransformRule {
    }
    interface BusinessType {
        BusinessType: TccBusinessType;
        Description: string;
    }
    enum TccDocumentSourceFormat {
        ccSF_Image = "ccSF_Image",
        ccSF_Pdf = "ccSF_Pdf"
    }
    enum TccDocumentTargetFormat {
        ccTF_Image = "ccTF_Image",
        ccTF_Pdf = "ccTF_Pdf"
    }
    enum TccImageCompression {
        ccIC_Unknown = "ccIC_Unknown",
        ccIC_Uncompressed = "ccIC_Uncompressed",
        ccIC_CCITT1D = "ccIC_Ccitt1D",
        ccIC_CCITTGroup3 = "ccIC_CcittGroup3",
        ccIC_CCITTGroup4 = "ccIC_CcittGroup4",
        ccIC_LZW = "ccIC_Lzw",
        ccIC_LZMA = "ccIC_Lzma",
        ccIC_Jpeg = "ccIC_Jpeg",
        ccIC_Jpeg2000 = "ccIC_Jpeg2000",
        ccIC_PackBits = "ccIC_PackBits",
        ccIC_Jbig = "ccIC_Jbig",
        ccIC_Zip = "ccIC_Zip",
        ccIC_RLE = "ccIC_RLE",
        ccIC_WebP = "ccIC_WebP"
    }
    enum TccImageFormat {
        ccIF_JPEG = "ccIF_Jpeg",
        ccIF_PNG = "ccIF_Png",
        ccIF_TIFF = "ccIF_Tiff",
        ccIF_GIF = "ccIF_Gif",
        ccIF_BMP = "ccIF_Bmp",
        ccIF_WEBP = "ccIF_WebP",
        ccIF_PDF = "ccIF_Pdf",
        ccIF_PDFA1A = "ccIF_PdfA1a",
        ccIF_PDFA2B = "ccIF_PdfA2b",
        ccIF_PDFA3B = "ccIF_PdfA3b"
    }
    enum TccPdfFormat {
        ccIF_PDF = "ccIF_Pdf",
        ccIF_PDFA1A = "ccIF_PdfA1a",
        ccIF_PDFA2B = "ccIF_PdfA2b",
        ccIF_PDFA3B = "ccIF_PdfA3b"
    }
    enum TccDocumentSplitOrMerge {
        ccSM_None = "ccSM_None",
        ccSM_Split = "ccSM_Split",
        ccSM_Merge = "ccSM_Merge"
    }
    interface DocumentConversionConfig extends TccC4Node {
        Definitions: Definition[];
    }
    interface Definition {
        DocumentSourceFormat: TccDocumentSourceFormat;
        DocumentTargetFormat: TccDocumentTargetFormat;
        ImageTargetCompression: TccImageCompression;
        ImageTargetFormat: TccImageFormat;
        PdfTargetFormat: TccPdfFormat;
        SplitOrMerge: TccDocumentSplitOrMerge;
        Quality: number;
        Deskew: boolean;
        AutoRotate: boolean;
        Despeckle: boolean;
        KeepSourceBlob: boolean;
    }
}
