///
import { USER_DOCUMENT_DIN_SIZE, USER_DOCUMENT_ORIENTATION } from './enum';
/**
* File intercepted from form submission
*/
export interface MulterFileInformation {
fieldname: string;
originalname: string;
encoding: string;
mimetype: string;
size: number;
destination: string;
filename: string;
path: string;
buffer: Buffer;
}
export interface FileMetadata {
mimeType?: string;
encoding?: string;
size?: number;
isPDF?: boolean;
pdfDinSize?: USER_DOCUMENT_DIN_SIZE;
pdfOrientation?: USER_DOCUMENT_ORIENTATION;
imageWidthInPixel?: number;
imageHeightInPixel?: number;
isOriginal?: boolean;
/** Primarily for files that do not originate from this server
* for ex. a digital signature request from dedicated documents server
*/
isRemoteFile?: boolean;
remoteFileId?: string;
remoteDeviceId?: string;
isTemporary?: boolean;
expiresAt?: number;
signatureCount?: number;
}
export interface StorageProviderServiceConfig {
/** Totally optionally; for non-AWS S3 hosts */
s3Host?: string;
s3Bucket?: string;
s3Region?: string;
s3AccessKeyId?: string;
RestHost?: string;
RestUser?: string;
SftpHost?: string;
SftpUser?: string;
SftpPort?: string;
/** If multiple devices backup to the same S3 volume
* for ex. /
*
* Important: The access key should be restricted to
* the / path, on the S3 volume
*/
path?: string;
}