/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
import mongoose from 'mongoose';
import AWS from 'aws-sdk';
import { ITransactionAttachedFileDoc } from '../models/TransactionAttachedFile.Model';
interface IAttachedFilesServiceDependencies {
    saveFilesToAws: boolean;
    rootDir: string;
    s3Read: AWS.S3;
    bucketName: string;
}
export declare class AttachedFilesService {
    private readonly saveFilesToAws;
    private readonly rootDir;
    private readonly s3Read;
    private readonly bucketName;
    constructor(deps: IAttachedFilesServiceDependencies);
    downloadAttachedFile(fileId: string): Promise<ITransactionAttachedFileDoc>;
    getEffectiveDateList(borrowerId: string): Promise<string[]>;
    getLatestEffectiveDate(borrowerId: string): Promise<string>;
    getAttachedFilesByEffectiveDate(effectiveDate: string): Promise<(mongoose.Document<unknown, {}, ITransactionAttachedFileDoc> & ITransactionAttachedFileDoc & {
        _id: mongoose.Types.ObjectId;
    })[]>;
    getAttachedFilesByEffectiveDatAndBorrowerId(effectiveDate: string, borrowerId: string): Promise<(mongoose.Document<unknown, {}, ITransactionAttachedFileDoc> & ITransactionAttachedFileDoc & {
        _id: mongoose.Types.ObjectId;
    })[]>;
    createAttachedFile(file: {
        filename: string;
        originalName: string;
    }, userId: string, effectiveDate: string, borrowerId: string): Promise<mongoose.Document<unknown, {}, ITransactionAttachedFileDoc> & ITransactionAttachedFileDoc & {
        _id: mongoose.Types.ObjectId;
    }>;
    getAttachedRealFilesByTransactionFileId(borrowerId: string, effectiveDate: string): Promise<any[]>;
}
export {};
