/* tslint:disable:all */
/**
* IApplePayService file.
*/
import { AppleTokenResponse } from "./../../lib/types/apple_pay_get_token_events";
import { ApplePayGetTokenOptions } from "./../../lib/types/apple_pay_get_token_options";
import { ApplePayOptions } from "./../../lib/types/apple_pay_options";
import { ErrorResponse } from "./../../lib/types/error_response";
export interface IApplePayService {
/**
* Create Apple Pay button into kushki
* @param options - style and text options for button
* @param mid - public merchant id
* @param isTest - is in test flag
* @param regional - is for regional flag
* @param onInit - call when button initialization finish correctly
* @param onClick - call if button is initialized correctly and the user click the button
* @param onError - call if exist an error on button initialization
*/
initApplePayButton(options: ApplePayOptions, mid: string, isTest: boolean, regional: boolean, onInit: () => void, onClick: () => void, onError: (error: ErrorResponse) => void): void;
/**
* Request card token with Apple Pay encrypted data
* @param options - payment options like currency, country, amount, etc.
* @param mid - public merchant id
* @param isTest - is in test flag
* @param regional - is for regional flag
* @param callback - call when process finish correctly with card token or error
* @param onCancel - call if the payment process is canceled
*/
requestApplePayToken(options: ApplePayGetTokenOptions, mid: string, isTest: boolean, regional: boolean, callback: (value: AppleTokenResponse | ErrorResponse) => void, onCancel: () => void): void;
}
/**
* Apple session object structure
*/
export interface IAppleSession {
completePayment: (merchantSession: object) => void;
completeMerchantValidation: (merchantSession: object) => void;
abort: () => void;
validationURL: string;
}