import * as isoly from "isoly"; import * as authly from "authly"; import * as model from "@payfunc/model-card"; import { Creatable } from "../Authorization/Creatable"; import { Recurring } from "../Authorization/Recurring"; import { Fraudio } from "../Fraudio"; import { Merchant as AcquirerMerchant } from "../Merchant"; import { Statistics } from "../Statistics"; import { Card } from "./Card"; import { Contact } from "./Contact"; import { Merchant } from "./Merchant"; export interface PreAuthorization { merchant: Merchant; authorization: { id?: authly.Identifier; amount: number; currency: isoly.Currency; card: Card & { csc?: "present"; }; contact?: Contact; capture?: "auto"; descriptor?: string; number: string; verification?: "verified" | "unavailable" | "rejected"; recurring?: Recurring; fraudio?: Fraudio; browser?: { ip?: string; }; ip?: { country?: isoly.CountryCode.Alpha2; }; category?: "purchase" | "withdrawal" | "payout"; }; now: isoly.Date; } export declare namespace PreAuthorization { function is(value: any | PreAuthorization): value is PreAuthorization; function from(authorization: Creatable | Creatable.Safe, card: model.Card.Creatable | model.Card.Creatable.Safe, merchant: AcquirerMerchant, statistics: Statistics, verification?: "verified" | "unavailable" | "rejected", rate?: Record): PreAuthorization; }