import type { Connection } from 'mongoose';
import * as factory from '../factory';
import { IDocType } from './mongoose/schemas/priceSpecification';
/**
 * 価格仕様リポジトリ
 */
export declare class PriceSpecificationRepo {
    private readonly priceSpecificationModel;
    constructor(connection: Connection);
    static CREATE_MONGO_CONDITIONS<T extends factory.priceSpecificationType>(params: factory.priceSpecification.ISearchConditions<T>): any[];
    count<T extends factory.priceSpecificationType>(params: factory.priceSpecification.ISearchConditions<T>): Promise<number>;
    search<T extends factory.priceSpecificationType>(params: factory.priceSpecification.ISearchConditions<T>): Promise<factory.priceSpecification.IPriceSpecification<T>[]>;
    findById<T extends factory.priceSpecificationType>(params: {
        id: string;
    }): Promise<factory.priceSpecification.IPriceSpecification<T>>;
    save<T extends factory.priceSpecificationType>(params: {
        id?: string;
        attributes: factory.priceSpecification.IPriceSpecification<T> & {
            id?: never;
            $unset?: never;
        };
    }): Promise<Pick<factory.priceSpecification.IPriceSpecification<T>, 'id'>>;
    /**
     * 削除する
     */
    deleteById(params: {
        id: string;
    }): Promise<void>;
    /**
     * プロジェクト指定で削除する
     */
    deleteByProject(params: {
        project: {
            id: string;
        };
    }): Promise<void>;
    getCursor(conditions: any, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, {}, IDocType> & ((import("@chevre/factory/lib/priceSpecification/categoryCodeChargeSpecification").IPriceSpecification & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }) | (import("@chevre/factory/lib/priceSpecification/movieTicketTypeChargeSpecification").IPriceSpecification & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }) | (import("@chevre/factory/lib/priceSpecification/unitPriceSpecification").IPriceSpecification & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }) | (import("@chevre/factory/lib/priceSpecification").IPriceSpecification<factory.priceSpecificationType> & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    })), import("mongoose").QueryOptions<import("mongoose").Document<unknown, {}, IDocType> & ((import("@chevre/factory/lib/priceSpecification/categoryCodeChargeSpecification").IPriceSpecification & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }) | (import("@chevre/factory/lib/priceSpecification/movieTicketTypeChargeSpecification").IPriceSpecification & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }) | (import("@chevre/factory/lib/priceSpecification/unitPriceSpecification").IPriceSpecification & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }) | (import("@chevre/factory/lib/priceSpecification").IPriceSpecification<factory.priceSpecificationType> & {
        validFrom?: Date;
        validThrough?: Date;
    } & {
        _id: import("mongoose").Types.ObjectId;
    }))>>;
    reIndex(): Promise<import("bson").Document>;
    unsetUnnecessaryFields(params: {
        filter: any;
        $unset: any;
    }): Promise<import("mongoose").UpdateWriteOpResult>;
}
