///
import { IResponse, AuthorizedOptionalRequest } from '../interfaces/common';
import TPayload from '../types/TPayload';
import IPayOptions from '../interfaces/IPaymentOptions';
import TokenDataSummary from '../interfaces/TokenDataSummary';
export interface DeliveryService {
payment(request: IPaymentRequest): Promise;
checkRefStatus(request: CheckRefStatusRequest): Promise;
verifyNFTOwnership(request: VerifyNFTOwnershipRequest): Promise;
swapNFT(request: SwapNFTRequest): Promise;
emptyWallet(request: EmptyWalletRequest): Promise;
}
/** ******************************************************************************
* Deliver Pay Transaction
******************************************************************************* */
export interface IPaymentParams {
account: string;
options: IPayOptions;
}
export declare type TPaymentPayload = TPayload;
export interface IPaymentRequest extends AuthorizedOptionalRequest {
params: IPaymentParams;
}
export interface IPaymentResponse extends IResponse {
txBuffer?: Buffer;
}
/** ******************************************************************************
* Check Status by Ref
******************************************************************************* */
export interface CheckRefStatusParams {
ref: string;
}
export declare type TCheckRefStatusPayload = TPayload;
export interface CheckRefStatusRequest extends AuthorizedOptionalRequest {
params: CheckRefStatusParams;
}
export interface CheckRefStatusResponse extends IResponse {
signature?: string | null;
}
/** ******************************************************************************
* Verify Token Ownership
******************************************************************************* */
export interface VerifyNFTOwnershipParams {
account: string;
collection: string;
traits?: Record;
}
export interface VerifyNFTOwnershipQueryStringParams extends VerifyNFTOwnershipParams {
trait?: string | string[];
}
export declare type TVerifyNFTOwnershipPayload = TPayload;
export interface VerifyNFTOwnershipRequest extends AuthorizedOptionalRequest {
params: VerifyNFTOwnershipParams;
}
export interface VerifyNFTOwnershipResponse extends IResponse {
success?: boolean;
tokens?: TokenDataSummary[];
}
/** ******************************************************************************
* Swap NFT
******************************************************************************* */
export interface SwapNFTParams {
account: string;
}
export declare type TSwapNFTPayload = TPayload;
export interface SwapNFTRequest extends AuthorizedOptionalRequest {
params: SwapNFTParams;
}
export interface SwapNFTResponse extends IResponse {
txBuffer?: Buffer;
}
/** ******************************************************************************
* Empty Wallet
******************************************************************************* */
export interface EmptyWalletParams {
account: string;
}
export declare type TEmptyWalletPayload = TPayload;
export interface EmptyWalletRequest extends AuthorizedOptionalRequest {
params: EmptyWalletParams;
}
export interface EmptyWalletResponse extends IResponse {
txBuffer?: Buffer;
}