import { PaymentResult } from '../../../shared/schemas';
import type { IFacilitatorService } from './IFacilitatorService';
import type { PaymentPayload, PaymentRequirements } from 'x402/types';
export interface ValidationResult {
    isValid: boolean;
    invalidReason?: string;
    payer?: string;
}
export interface ExecutionResult {
    success: boolean;
    txHash?: string;
    status: 'submitted' | 'confirmed' | 'failed';
    error?: string;
    errorReason?: string;
}
export declare abstract class BaseFacilitatorService implements IFacilitatorService {
    protected abstract performValidation(payload: PaymentPayload, requirements: any): Promise<ValidationResult>;
    protected abstract performExecution(payload: PaymentPayload, requirements: any): Promise<PaymentResult>;
    validatePayment(payload: PaymentPayload, paymentRequirements: any): Promise<ValidationResult>;
    executePayment(payload: PaymentPayload, paymentRequirements: PaymentRequirements): Promise<PaymentResult>;
    protected createValidResult(payer?: string): ValidationResult;
    protected createInvalidResult(reason: string): ValidationResult;
}
