import { Connection } from 'mongoose';
import * as factory from '../factory';
type IMakesOffer = Pick<factory.project.IMakesOffer, 'eligibleCustomerType' | 'typeOf' | 'validForMemberTier'> & {
    availableAtOrFrom: Pick<factory.offer.IAvailableAtOrFrom, 'id'>;
};
/**
 * プロジェクト提供オファーリポジトリ
 */
export declare class ProjectMakesOfferRepo {
    private readonly projectModel;
    constructor(connection: Connection);
    search(params: {
        limit?: number;
        page?: number;
        offeredBy?: {
            id?: {
                $eq?: string;
            };
        };
        availableAtOrFrom?: {
            id?: {
                $eq?: string;
            };
        };
    }): Promise<IMakesOffer[]>;
    create(params: {
        availableAtOrFrom: {
            id: string;
        };
        offeredBy: {
            id: string;
        };
    }): Promise<void>;
    updateOne(params: {
        availableAtOrFrom: {
            id: string;
        };
        eligibleCustomerType?: {
            codeValue: string;
        }[];
        offeredBy: {
            id: string;
        };
        validForMemberTier?: factory.project.IMemberProgramTier;
    }): Promise<void>;
    deleteOne(params: {
        availableAtOrFrom: {
            id: string;
        };
        offeredBy: {
            id: string;
        };
    }): Promise<void>;
}
export {};
