import * as gracely from "gracely"; import * as isoly from "isoly"; import * as base from "@payfunc/model-base"; import { Error } from "../../Error"; import { Verification as AcquirerVerification } from "../../Verification"; import { Recurring } from "../Recurring"; export declare type Verification = Fail | Success | Pending; declare type Response = "method" | "challenge" | "guard" | "authorization" | "postauthorization" | "preauthorization"; interface Base { merchant: string; number: string; date: isoly.DateTime; type: "verification"; status: "fail" | "success" | "pending"; step: "preauthorization" | "authorization" | "postauthorization"; response: Partial>; items: number | base.Item | base.Item[]; currency: isoly.Currency; target?: string; browser?: base.Browser; customer?: base.Contact; contact?: base.Contact; recurring?: Recurring; } interface Fail extends Base { status: "fail"; reason: Error.Code; declinedBy?: "issuer" | "intergiro"; error: gracely.Error; } interface Success extends Base { status: "success"; step: "postauthorization" | "authorization"; } interface Pending extends Base { status: "pending"; step: "preauthorization" | "authorization"; } export declare namespace Verification { function isFail(value: any | Fail): value is Fail; function isSuccess(value: any | Success): value is Success; function isPending(value: any | Pending): value is Pending; function is(value: any | Verification): value is Verification; function create(merchant: string, creatable: Omit, step: "preauthorization" | "authorization" | "postauthorization", response: Partial>, input: gracely.Error | AcquirerVerification): Verification; } export {};