import * as factory from '../../factory';
import type { AuthorizationRepo } from '../../repo/authorization';
import type { OrderRepo } from '../../repo/order';
import type { ReservationRepo } from '../../repo/reservation';
type AvailableReservationType = factory.reservationType.BusReservation | factory.reservationType.EventReservation;
type IReservationResult = Pick<factory.reservation.IReservation<AvailableReservationType>, 'id' | 'additionalTicketText' | 'checkedIn' | 'reservationStatus'> & {
    reservedTicket: {
        ticketType: Pick<factory.reservation.ITicketType<AvailableReservationType>, 'identifier'> & {
            name: {
                ja?: string;
            };
        };
    };
};
declare function findByCode(params: {
    /**
     * 予約ID
     */
    id: string;
    project: {
        id: string;
    };
    /**
     * 注文コード
     */
    code: string;
    seller?: {
        id?: string;
    };
}): (repos: {
    authorization: AuthorizationRepo;
    order: OrderRepo;
    reservation: ReservationRepo;
}) => Promise<{
    reservation: IReservationResult;
}>;
export { findByCode };
