import { CallbackData } from '../types';
import { IEventEmitter } from '../interfaces/IEventEmitter';
import { IHttpClient } from '../interfaces/IHttpClient';
import { IPaymentMethod } from '../interfaces/IPaymentMethod';
export declare abstract class Base implements IPaymentMethod {
    protected readonly apiKey: string;
    readonly eventEmitter: IEventEmitter;
    protected readonly httpClient: IHttpClient;
    constructor(apiKey: string, httpClient: IHttpClient);
    protected request<T>(endpoint: string, data: Record<string, any>): Promise<T>;
    /**
     * Verify callback data from Shipy
     */
    verifyCallback(callbackData: CallbackData): boolean;
    /**
     * Create a payment request
     * @param params Payment parameters
     * @returns Promise resolving to payment response
     */
    abstract pay(params: any): Promise<any>;
}
