import { ITenantEntityType, ITenantAttribute, ITenantAttributeSet } from '../../../DataHub';

/**
 * EcmDataHubIntegration models
 */
/** Actindo.Extensions.Actindo.EcmDataHubIntegration.DataTypes.GenericFile.FileValueObject */
export interface IEcmDataHubIntegrationFileValueObject {
    /** The path to the file in ECM */
    id: string;
    /** The displayed name of the file */
    name: string;
    /** The filename of the uploaded file */
    fileName: string;
    /** A description to give additional information on the file */
    description: string;
    /** The filesize of the file in Bytes */
    size: number;
    /** The time of upload (Unix timestamp with milliseconds) */
    timestamp: number;
    metaData: object;
    /** A flag to determine whether deletion should be permanent */
    permanentDelete: boolean;
    fileTags: string;
}
/** Actindo.Extensions.Actindo.EcmDataHubIntegration.DataTypes.GenericFile.FileCollectionValueObject */
export interface IEcmFileCollectionValueObject {
    id: number;
    files: IEcmDataHubIntegrationFileValueObject[];
}
/**
 * GlobalDriverManagement models
 */
/** Actindo.Modules.Actindo.GlobalDriverManagement.Models.ConnectionType */
export interface IGDMConnectionType {
    id: number;
    name: string;
    /** EntityType of the ConnectionType */
    entityType: ITenantEntityType;
    pluginId: number;
    pluginName: string;
    drivers: unknown[];
    active: boolean;
    serializeOptionals: unknown;
    serializeDeep: boolean;
}
export interface IGDMMessage {
    id: number;
    title: string;
    logLevel: string;
    message: string;
    created: string;
    createdBy: number;
    modified: string;
    modifiedBy: number;
    modifiedByUsername: string;
    createdByUsername: string;
    intentId: number;
    deletable: boolean;
    entityId: number;
    _E: number;
}
/** Actindo.Modules.Actindo.GlobalDriverManagement.Models.LogIntent */
export interface IGDMLogIntent {
    id: number;
    name: string;
    connectionType: IGDMConnectionType;
    connectionId: number;
    messages: IGDMMessage[];
    createdBy: number;
    created: string;
    modified: string;
    modifiedBy: number;
    modifiedByUsername: number;
    createdByUsername: string;
    numberOfMessages: number;
    maxLogLevelOfMessages: string;
    deletable?: boolean;
}
/** Actindo.Modules.Actindo.GlobalDriverManagement.Models.LogIntentToEntityMap */
export interface IGDMLogIntentToEntityMap {
    id: number;
    logIntent: IGDMLogIntent;
    entityType: ITenantEntityType;
    entityId: number;
    createdBy: number;
    created: string;
    modified: string;
    modifiedBy: number;
    modifiedByUsername: number;
    createdByUsername: string;
}
export declare enum GDM_LOG_LEVEL {
    EMERGENCY = "emergency",
    ALERT = "alert",
    CRITICAL = "critical",
    ERROR = "error",
    WARNING = "warning",
    INFO = "info",
    NOTICE = "notice",
    DEBUG = "debug"
}
/** Actindo.Modules.Actindo.GlobalDriverManagement.Models.LogMessage */
export interface IGDMLogMessage {
    id: number;
    title: string;
    logLevel: GDM_LOG_LEVEL;
    message: string;
    created: string;
    createdBy: number;
    modified: string;
    modifiedBy: number;
    modifiedByUsername: number;
    createdByUsername: string;
    attributeSet: ITenantAttributeSet;
    intent: IGDMLogIntent;
    intentId: number;
    deletable: boolean;
    entityId: number;
    logMessageId: number;
    etlDependencies: unknown;
    variantInformation: unknown;
    synchronousSync: boolean;
    compareOldValue: boolean;
}
/** Actindo.Modules.Actindo.GlobalDriverManagement.Models.Driver */
export interface IGDMDriver {
    id: number;
    name: string;
    icon: string;
    connectionType: IGDMConnectionType;
    credentialAttributes: Record<string, ITenantAttribute[]>;
    pluginId: number;
    pluginName: string;
    driverClass: string;
    attributeSet: ITenantAttributeSet;
    active: boolean;
    configurable: boolean;
    serializeOptionals: object;
    serializeDeep: boolean;
}
/** Actindo.Modules.Actindo.GlobalDriverManagement.ManagedConnectionTypeAbstract */
export interface IGDMManagedConnectionTypeAbstract<T = object> {
    name: string;
    driver: IGDMDriver;
    data: T;
    driverClassAvailable: boolean;
    entityId: number;
    etlDependencies: object;
    variantInformation: object;
    synchronousSync: boolean;
    compareOldValue: boolean;
    created: string;
    id: number;
}
