import { BaseService } from "../base-service";
import { MpesaSTKInitiateRequest, MpesaSTKInitiateResponse, MpesaTransactionStatusRequest, MpesaTransactionStatusResponse, MpesaTransactionHistoryRequest, MpesaTransactionHistoryResponse, SphereConfig } from "../types";
export declare class OnrampService extends BaseService {
    private mpesaClient;
    constructor(httpClient: any, config: SphereConfig);
    /**
     * Initiates an M-Pesa STK push for crypto on-ramping
     * @param request - The STK initiation request containing user details and payment info
     * @returns Promise with the STK initiation response
     */
    initiateSafaricomSTK(request: MpesaSTKInitiateRequest): Promise<MpesaSTKInitiateResponse>;
    /**
     * Gets the status of a Safaricom transaction
     * @param request - The transaction status request with checkout or merchant request ID
     * @returns Promise with the transaction status response
     */
    getSafaricomTransactionStatus(request: MpesaTransactionStatusRequest): Promise<MpesaTransactionStatusResponse>;
    /**
     * Polls transaction status until completion or timeout
     * @param checkoutRequestId - The checkout request ID from STK initiation (optional)
     * @param merchantId - The merchant request ID from STK initiation (optional)
     * @param maxAttempts - Maximum number of polling attempts (default: 10)
     * @param intervalMs - Interval between polls in milliseconds (default: 10000)
     * @returns Promise with the final transaction status
     */
    pollSafaricomTransactionStatus(checkoutRequestId?: string, merchantId?: string, maxAttempts?: number, intervalMs?: number): Promise<MpesaTransactionStatusResponse>;
    /**
     * Gets user's M-Pesa onramp transaction history with filtering and pagination
     * @param request - The transaction history request with optional filters
     * @returns Promise with the transaction history response
     */
    getUserTransactionHistory(request?: MpesaTransactionHistoryRequest): Promise<MpesaTransactionHistoryResponse>;
    /**
     * Set API key for M-Pesa operations
     */
    setMpesaApiKey(apiKey: string): void;
    /**
     * Utility method to delay execution
     * @param ms - Milliseconds to delay
     */
    private delay;
}
//# sourceMappingURL=onramp.d.ts.map