import * as factory from '../factory'; import { IProjectionSearchConditions, IUnset, Service } from '../service'; export declare type IProduct = factory.product.IProduct | factory.service.paymentService.IService; export declare type IProductWithoutCredentials = Omit; export declare type IProviderCredentialsWithoutCredentials = Pick; export declare type IProviderWithoutCredentials = Pick & { credentials?: IProviderCredentialsWithoutCredentials; }; export declare type IPaymentServiceWithoutCredentials = Omit & { provider?: IProviderWithoutCredentials[]; }; export declare type ISearchProductsResult = IProductWithoutCredentials | IPaymentServiceWithoutCredentials; /** * プロダクトサービス */ export declare class ProductService extends Service { /** * 作成 */ create(params: IProduct): Promise; /** * プロダクトタイプでなければ作成 */ createIfNotExist(params: IProduct): Promise; /** * 検索 */ search(params: factory.product.ISearchConditions & IProjectionSearchConditions): Promise<{ data: ISearchProductsResult[]; }>; findById(params: { id: string; } & IProjectionSearchConditions): Promise; update(params: IProduct & IUnset): Promise; deleteById(params: { id: string; }): Promise; /** * オファー検索 */ searchOffers(params: { limit?: number; page?: number; id: string; seller?: { id?: string; }; availableAt?: { id?: string; }; onlyValid?: boolean; }): Promise; }