import { OperationResponse } from '../../utils/operation_response';
import { DisbursementServiceConfig } from '../implementations/disbursement_service';
import { DisbursementApiRawStatus, DisbursementStatus } from '../utils/status';
export interface GetTransferStatusRequest {
    token: string;
    messageId: string;
}
declare type GetTransferStatusResponseRawData = {
    result: {
        message: string;
        data: {
            createtime: string;
            subscriberMsisdn: string;
            amount: number;
            payToken: string;
            txnid: string;
            txnmode: string;
            txnstatus: string;
            orderId: string;
            status: DisbursementApiRawStatus;
            channelUserMsisdn: string;
            description: string;
        };
    };
    parameters?: {
        amount: string;
        xauth: string;
        channel_user_msisdn: string;
        customer_key: string;
        customer_secret: string | null;
        final_customer_name: string;
        final_customer_phone: string;
    };
    CreateAt: string;
    MessageId: string;
    RefundStep: DisbursementStep;
} | {
    parameters?: {
        amount: string;
        xauth: string;
        channel_user_msisdn: string;
        customer_key: string;
        customer_secret: string | null;
        final_customer_name: string;
        final_customer_phone: string;
    };
    message: string;
    RefundStep: DisbursementStep;
} | {
    ErrorCode: number;
    body: string;
    ErrorMessage: string;
    parameters?: {
        amount: string;
        xauth: string;
        channel_user_msisdn: string;
        customer_key: string;
        customer_secret: string | null;
        final_customer_name: string;
        final_customer_phone: string;
    };
    CreateAt: string;
    MessageId: string;
    RefundStep: DisbursementStep;
} | {
    result: {
        createtime: string;
        toChannelMsisdn: string;
        amount: 498925;
        payToken: string;
        txnid: string;
        txnmode: string;
        txnmessage: string;
        txnstatus: string;
        orderId: string;
        status: DisbursementApiRawStatus;
        fromChannelMsisdn: string;
        description: string;
    };
    parameters: {
        amount: string;
        xauth: string;
        channel_user_msisdn: string;
        customer_key: string;
        customer_secret: string | null;
        final_customer_name: string;
        final_customer_phone: string;
    };
    CreateAt: string;
    RefundStep: DisbursementStep;
} | string;
export declare enum DisbursementStep {
    TransferSent = "2",
    InitializingTransfer = "1"
}
export interface responseData {
    status?: DisbursementStatus;
    refundStep?: DisbursementStep;
}
export declare type GetTransferStatusResponse = OperationResponse<responseData, GetTransferStatusResponseRawData>;
/**
 * Retrieves the transfer status of a transaction.
 *
 * @param {DisbursementServiceConfig} configs - The disbursement service config.
 * @param {GetTransferStatusRequest} params - The parameters for retrieving the transfer status.
 * @return {GetTransferStatusResponse} - The method response containing the transfer status.
 */
export declare function getTransferStatus({ configs, params, endPoint, }: {
    configs: DisbursementServiceConfig;
    params: GetTransferStatusRequest;
    endPoint: string;
}): GetTransferStatusResponse;
export {};
//# sourceMappingURL=get_transfer_status.d.ts.map