import { Connection } from 'mongoose';
import * as factory from '../factory';
import TicketTypeModel from './mongoose/model/ticketType';
import TicketTypeGroupModel from './mongoose/model/ticketTypeGroup';
/**
 * Mongoリポジトリー
 */
export declare class MongoRepository {
    readonly ticketTypeModel: typeof TicketTypeModel;
    readonly ticketTypeGroupModel: typeof TicketTypeGroupModel;
    constructor(connection: Connection);
    static CREATE_TICKET_TYPE_MONGO_CONDITIONS(params: factory.ticketType.ITicketTypeSearchConditions): any[];
    static CREATE_TICKET_TYPE_GROUP_MONGO_CONDITIONS(params: factory.ticketType.ITicketTypeGroupSearchConditions): any[];
    findByTicketGroupId(params: {
        ticketGroupId: string;
    }): Promise<factory.ticketType.ITicketType[]>;
    /**
     * 券種グループを作成する
     */
    createTicketTypeGroup(params: factory.ticketType.ITicketTypeGroup): Promise<factory.ticketType.ITicketTypeGroup>;
    /**
     * IDで件券種グループを検索する
     */
    findTicketTypeGroupById(params: {
        id: string;
    }): Promise<factory.ticketType.ITicketTypeGroup>;
    countTicketTypeGroups(params: factory.ticketType.ITicketTypeGroupSearchConditions): Promise<number>;
    /**
     * 券種グループを検索する
     */
    searchTicketTypeGroups(params: factory.ticketType.ITicketTypeGroupSearchConditions): Promise<factory.ticketType.ITicketTypeGroup[]>;
    /**
     * 券種グループを更新する
     */
    updateTicketTypeGroup(params: factory.ticketType.ITicketTypeGroup): Promise<void>;
    /**
     * 券種グループを削除する
     */
    deleteTicketTypeGroup(params: {
        id: string;
    }): Promise<void>;
    /**
     * 券種を作成する
     */
    createTicketType(params: factory.ticketType.ITicketType): Promise<factory.ticketType.ITicketType>;
    /**
     * IDで件券種を検索する
     */
    findTicketTypeById(params: {
        id: string;
    }): Promise<factory.ticketType.ITicketType>;
    countTicketTypes(params: factory.ticketType.ITicketTypeSearchConditions): Promise<number>;
    /**
     * 券種を検索する
     */
    searchTicketTypes(params: factory.ticketType.ITicketTypeSearchConditions): Promise<factory.ticketType.ITicketType[]>;
    /**
     * 券種を更新する
     */
    updateTicketType(params: factory.ticketType.ITicketType): Promise<void>;
    /**
     * 券種を削除する
     */
    deleteTicketType(params: {
        id: string;
    }): Promise<void>;
}
