import { AbstractRestfulClient, Parameters } from '../abstractRestfulClient'; import { GetResult } from '../getResult'; import { QuoteRequest } from './entities/QuoteRequest'; import { PutQuoteResult } from './entities/PutQuoteResult'; import { QuoteComments } from './entities/QuoteComments'; export declare type RequestQuoteRequestType = { agreeToReceiveCommunications: boolean; agreeSharingInformation: boolean; comments?: string; company: string; country: string; email: string; firstName: string; lastName: string; phoneNumber: string; sku: string; vendor: string; }; export declare type DuplicateQuoteType = { customer?: { reference: string; }; }; export declare type RequestQuoteIbmRequestType = { endCustomerRef?: string; reference?: string; }; declare type QuoteCustomerType = { reference: string; }; declare type QuoteRateType = { rateType: 'discount' | 'fixed' | 'uplift'; value: number; }; declare type QuoteCustomerPricesType = { rate?: QuoteRateType; fixedPrice?: number; }; declare type QuoteArrowPricesType = QuoteCustomerPricesType; declare type QuotePricesType = { customer?: QuoteCustomerPricesType; partner?: QuoteCustomerPricesType; arrow?: QuoteArrowPricesType; }; export declare type QuoteItemTypeRequest = { arrowSpherePriceBandSku: string; quantity: number; coterminosityDate?: string; prices?: QuotePricesType; }; export declare type PublishQuoteRequestType = { customer?: QuoteCustomerType; items: QuoteItemTypeRequest[]; startDate?: string; endDate?: string; name?: string; }; export declare type CreateQuoteRequestType = { customer?: QuoteCustomerType; items?: QuoteItemTypeRequest[]; promotionCode?: string; }; export declare type CreateCommentType = { body: string; }; export declare class QuotesClient extends AbstractRestfulClient { protected basePath: string; requestQuote(postData: RequestQuoteRequestType, parameters?: Parameters): Promise>; requestQuoteForVendor(vendor: string, postData: RequestQuoteIbmRequestType, parameters?: Parameters): Promise; deleteQuote(quoteReference: string, parameters?: Parameters): Promise; duplicateQuote(quoteReference: string, versionId: number, postData?: DuplicateQuoteType): Promise>; validateQuote(quoteReference: string, parameters?: Parameters): Promise>; reopenQuote(quoteReference: string, parameters?: Parameters): Promise>; sendToCustomer(quoteReference: string, parameters?: Parameters): Promise; createQuote(postData: CreateQuoteRequestType, parameters?: Parameters): Promise>; publishQuote(quoteReference: string, postData: PublishQuoteRequestType, parameters?: Parameters): Promise>; addCommentToQuote(quoteReference: string, postData: CreateCommentType, parameters?: Parameters): Promise>; deleteQuoteComment(quoteReference: string, commentId: string, parameters?: Parameters): Promise; } export {};