import { SipayResource } from './base';
import { SipayApiResponse, RequestOptions, MarketplacePaymentResponse, PaymentStatusResponse, MarketplaceRefundResponse, SettlementsResponse, TransactionApprovalResponse, SubMerchantPayoutResponse } from '../types';
export interface MarketplaceSaleRequest {
    merchant_key: string;
    cc_holder_name: string;
    cc_no: string;
    expiry_month: string;
    expiry_year: string;
    cvv?: string;
    currency_code: string;
    installments_number?: number;
    invoice_id: string;
    invoice_description: string;
    total: number;
    items: Array<{
        name: string;
        price: number;
        qnantity: number;
        description: string;
        sub_merchant_key: string;
        sub_merchant_price: number;
    }>;
    name: string;
    surname: string;
    hash_key?: string;
}
export interface MarketplaceRefundRequest {
    merchant_key: string;
    invoice_id: string;
    amount: string;
    sub_merchant_key?: string;
}
export interface MarketplaceStatusRequest {
    merchant_key: string;
    invoice_id: string;
    include_pending_status?: string;
}
export interface MarketplaceApproveRequest {
    merchant_key: string;
    invoice_id: string;
    sub_merchant_key: string;
    amount: string;
}
export interface SettlementsRequest {
    merchant_key: string;
    sub_merchant_key?: string;
    start_date?: string;
    end_date?: string;
}
export interface MarketplacePayoutRequest {
    merchant_key: string;
    sub_merchant_key: string;
    amount: number;
    currency_code: string;
    description?: string;
}
export declare class Marketplace extends SipayResource {
    /**
     * Make a marketplace payment (non-secure/2D)
     */
    pay2D(paymentData: Omit<MarketplaceSaleRequest, 'merchant_key' | 'hash_key'>, options?: RequestOptions): Promise<SipayApiResponse<MarketplacePaymentResponse>>;
    /**
     * Make a marketplace payment with 3D Secure
     */
    pay3D(paymentData: Omit<MarketplaceSaleRequest, 'merchant_key'>, options?: RequestOptions): Promise<SipayApiResponse<MarketplacePaymentResponse>>;
    /**
     * Refund a marketplace payment
     */
    refund(refundData: Omit<MarketplaceRefundRequest, 'merchant_key'>, options?: RequestOptions): Promise<SipayApiResponse<MarketplaceRefundResponse>>;
    /**
     * Check status of a marketplace payment
     */
    checkStatus(statusData: Omit<MarketplaceStatusRequest, 'merchant_key'>, options?: RequestOptions): Promise<SipayApiResponse<PaymentStatusResponse>>;
    /**
     * Get settlements information
     */
    getSettlements(settlementsData: Omit<SettlementsRequest, 'merchant_key'>, options?: RequestOptions): Promise<SipayApiResponse<SettlementsResponse>>;
    /**
     * Approve a marketplace transaction
     */
    approveTransaction(approveData: Omit<MarketplaceApproveRequest, 'merchant_key'>, options?: RequestOptions): Promise<SipayApiResponse<TransactionApprovalResponse>>;
    /**
     * Process payout to sub merchants
     */
    payout(payoutData: Omit<MarketplacePayoutRequest, 'merchant_key'>, options?: RequestOptions): Promise<SipayApiResponse<SubMerchantPayoutResponse>>;
}
//# sourceMappingURL=marketplace.d.ts.map