import { PaymentContext, SdkResponse } from "../../../model/types";
import { CreatePaymentProductSessionRequest, CreatePaymentProductSessionResponse, DeviceFingerprintRequest, DeviceFingerprintResponse, Directory, ErrorResponse, GetCustomerDetailsRequest, GetCustomerDetailsResponse, PaymentProductNetworksResponse, PaymentProductResponse, PaymentProducts } from "../domain";
export interface ProductsClient {
/**
* Resource /{merchantId}/products - Get payment products
*/
find(merchantId: string, paymentContext: FindProductsParams): Promise>;
/**
* Resource /{merchantId}/products/{paymentProductId} - Get payment product
*/
get(merchantId: string, paymentProductId: number, paymentContext: GetProductParams): Promise>;
/**
* Resource /{merchantId}/products/{paymentProductId}/directory - Get payment product directory
*/
directory(merchantId: string, paymentProductId: number, paymentContext: DirectoryParams): Promise>;
/**
* Resource /{merchantId}/products/{paymentProductId}/customerDetails - Get customer details
*/
customerDetails(merchantId: string, paymentProductId: number, postData: GetCustomerDetailsRequest, paymentContext?: PaymentContext | null): Promise>;
/**
* Resource /{merchantId}/products/{paymentProductId}/deviceFingerprint - Get device fingerprint
*/
deviceFingerprint(merchantId: string, paymentProductId: number, postData: DeviceFingerprintRequest, paymentContext?: PaymentContext | null): Promise>;
/**
* Resource /{merchantId}/products/{paymentProductId}/networks - Get payment product networks
*/
networks(merchantId: string, paymentProductId: number, paymentContext: NetworksParams): Promise>;
/**
* Resource /{merchantId}/products/{paymentProductId}/sessions - Create session for payment product
*/
sessions(merchantId: string, paymentProductId: number, postData: CreatePaymentProductSessionRequest, paymentContext?: PaymentContext | null): Promise>;
}
export interface FindProductsParams extends PaymentContext {
countryCode?: string;
currencyCode?: string;
locale?: string;
amount?: number;
isRecurring?: boolean;
isInstallments?: boolean;
hide?: string[];
}
export interface GetProductParams extends PaymentContext {
countryCode?: string;
currencyCode?: string;
locale?: string;
amount?: number;
isRecurring?: boolean;
isInstallments?: boolean;
hide?: string[];
forceBasicFlow?: boolean;
}
export interface DirectoryParams extends PaymentContext {
countryCode?: string;
currencyCode?: string;
}
export interface NetworksParams extends PaymentContext {
countryCode?: string;
currencyCode?: string;
amount?: number;
isRecurring?: boolean;
}