import type { Connection, PipelineStage } from 'mongoose';
import { IAccountingReport, IChildReport, IOrder4report } from './mongoose/schemas/accountingReport';
import * as factory from '../factory';
type IMatchStage = PipelineStage.Match;
export { IAccountingReport, IChildReport, IOrder4report };
/**
 * 経理レポートリポジトリ
 */
export declare class AccountingReportRepo {
    private readonly accountingReportModel;
    constructor(connection: Connection);
    static CREATE_MONGO_CONDITIONS(params: factory.report.accountingReport.ISearchConditions & {
        seller?: {
            id?: string;
        };
    }): IMatchStage[];
    syncMainEntity(params: IAccountingReport): Promise<void>;
    /**
     * 注文番号で削除する
     */
    deleteByOrderNumber(params: {
        mainEntity: {
            orderNumber: string;
        };
    }): Promise<void>;
    /**
     * 注文にアクションレポートを追加する
     * 注文に対する経理レポート自体が未作成であれば自動的に作成する
     */
    addChildReport(params: {
        project: {
            id: string;
        };
        mainEntity: {
            orderNumber: string;
        };
        hasPart: IChildReport;
    }): Promise<void>;
    search(params: factory.report.accountingReport.ISearchConditions & {
        seller?: {
            id?: string;
        };
    }): Promise<any[]>;
    unsetUnnecessaryFields(params: {
        filter: any;
        $unset: any;
    }): Promise<import("mongoose").UpdateWriteOpResult>;
}
