import { Error } from "gracely";
import { Token } from "authly";
import { Order, PaymentCreatable, PaymentOption, PaymentOptionType } from "../../model";
import { PaymentOptionData } from "./PaymentOptionData";
export declare type SubmitResult = Token | undefined;
export interface PaymentDetails {
  getPayment(order: Omit<Order.Creatable, "payment">, apiKey: string): Promise<PaymentCreatable | undefined>;
  confirmPayment?(order: Order | Partial<Order>, payment: PaymentCreatable, apiKey: string, error?: Error): Promise<PaymentCreatable | undefined>;
}
export declare function paymentDetailsAdd(type: PaymentOptionType, creator: (option: PaymentOption, cosmetic?: string) => PaymentOptionData): void;
export declare function paymentDetailsCreate(option: PaymentOption, cosmetic?: string): PaymentOptionData | undefined;
