declare module 'mpesa-sdk-mozambique' { export interface MpesaAPIConfig { apiKey: string; publicKey: string; serviceProviderCode: string; origin: string; apiHost?: string; timeout?: number; env?: 'sandbox' | 'live'; } export interface C2BArgs { amount: number; number: string; transactionReference: string; thirdPartyReference: string; } export interface B2CArgs { amount: number; number: string; transactionReference: string; thirdPartyReference: string; paymentServices?: string; } export interface B2BArgs { amount: number; primaryPartyCode: string; recipientPartyCode: string; transactionReference: string; thirdPartyReference: string; paymentServices?: string; } export interface QueryArgs { queryReference: string; thirdPartyReference: string; } export interface ReversalArgs { originalTransactionId: string; reversalAmount: number; thirdPartyReference: string; } // --- Respostas Simplificadas e LegĂ­veis --- export interface MpesaResponse { status: 'success' | 'error'; message: string; data?: T; code?: string; httpStatus?: number; transactionId?: string; conversationId?: string; thirdPartyReference?: string; timestamp?: string; } export interface C2BResponseData { transactionId: string; conversationId: string; thirdPartyReference: string; amount: string; customerMsisdn: string; transactionReference: string; } export interface B2CResponseData { transactionId: string; conversationId: string; thirdPartyReference: string; amount: string; customerMsisdn: string; transactionReference: string; recipientFirstName?: string; recipientLastName?: string; settlementAmount?: string; } export interface B2BResponseData { transactionId: string; conversationId: string; thirdPartyReference: string; amount: string; primaryPartyCode: string; recipientPartyCode: string; transactionReference: string; settlementAmount?: string; } export interface QueryResponseData { transactionId: string; conversationId: string; thirdPartyReference: string; queryReference: string; transactionStatus?: string; paymentStatusCode?: string; paymentStatusDesc?: string; } export interface ReversalResponseData { transactionId: string; conversationId: string; thirdPartyReference: string; originalTransactionId: string; reversalAmount: string; } // --- Mapeamento de Mensagens de Erro --- export const MPESA_ERROR_MESSAGES: Record; export class MpesaService { constructor(config: MpesaAPIConfig); c2b(args: C2BArgs): Promise>; b2c(args: B2CArgs): Promise>; b2b(args: B2BArgs): Promise>; query(args: QueryArgs): Promise>; reversal(args: ReversalArgs): Promise>; } export class MpesaError extends Error { constructor(message: string, code?: string, details?: any, httpStatus?: number); code: string; details: any; httpStatus: number; } export function generateUniqueReference(prefix?: string): string; export function generateBearerToken(apiKey: string, publicKey: string): string; export function formatPublicKey(publicKey: string): string; // Response types (legacy - kept for backward compatibility) export interface MpesaC2BResponse { output_ResponseCode: string; output_ResponseDesc: string; output_TransactionID: string; output_ConversationID: string; output_ThirdPartyReference: string; } export interface MpesaB2CResponse { output_ResponseCode: string; output_ResponseDesc: string; output_TransactionID: string; output_ConversationID: string; output_ThirdPartyReference: string; } export interface MpesaB2BResponse { output_ResponseCode: string; output_ResponseDesc: string; output_TransactionID: string; output_ConversationID: string; output_ThirdPartyReference: string; } export interface MpesaQueryResponse { output_ResponseCode: string; output_ResponseDesc: string; output_TransactionID: string; output_ConversationID: string; output_ThirdPartyReference: string; } export interface MpesaReversalResponse { output_ResponseCode: string; output_ResponseDesc: string; output_TransactionID: string; output_ConversationID: string; output_ThirdPartyReference: string; } }