/**
 * Supported payment gateways
 */
export declare enum PaymentGateway {
    KHALTI = "KHALTI",
    ESEWA = "ESEWA"
}
/**
 * Payment status
 */
export declare enum PaymentStatus {
    PENDING = "PENDING",
    COMPLETED = "COMPLETED",
    FAILED = "FAILED",
    EXPIRED = "EXPIRED",
    CANCELED = "CANCELED"
}
/**
 * Payment status for internal use
 * Normalized status across all payment gateways
 */
export declare enum NormalizedPaymentStatus {
    SUCCESS = "success",
    FAILED = "failed",
    PENDING = "pending",
    REFUNDED = "refunded",
    CANCELLED = "cancelled",
    EXPIRED = "expired",
    PARTIALLY_REFUNDED = "partially_refunded"
}
/**
 * Payment error codes
 */
export declare enum PaymentErrorCode {
    INVALID_CONFIG = "INVALID_CONFIG",
    GATEWAY_NOT_CONFIGURED = "GATEWAY_NOT_CONFIGURED",
    VALIDATION_ERROR = "VALIDATION_ERROR",
    INVALID_AMOUNT = "INVALID_AMOUNT",
    INVALID_URL = "INVALID_URL",
    INVALID_PAYMENT_ID = "INVALID_PAYMENT_ID",
    INVALID_PARAMETER = "INVALID_PARAMETER",
    AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
    INVALID_CREDENTIALS = "INVALID_CREDENTIALS",
    TOKEN_EXPIRED = "TOKEN_EXPIRED",
    PAYMENT_FAILED = "PAYMENT_FAILED",
    PAYMENT_EXPIRED = "PAYMENT_EXPIRED",
    PAYMENT_CANCELED = "PAYMENT_CANCELED",
    PAYMENT_ALREADY_COMPLETED = "PAYMENT_ALREADY_COMPLETED",
    VERIFICATION_FAILED = "VERIFICATION_FAILED",
    VERIFICATION_TIMEOUT = "VERIFICATION_TIMEOUT",
    GATEWAY_ERROR = "GATEWAY_ERROR",
    GATEWAY_TIMEOUT = "GATEWAY_TIMEOUT",
    GATEWAY_UNAVAILABLE = "GATEWAY_UNAVAILABLE",
    NETWORK_ERROR = "NETWORK_ERROR",
    REQUEST_TIMEOUT = "REQUEST_TIMEOUT",
    UNKNOWN_ERROR = "UNKNOWN_ERROR",
    SIGNATURE_GENERATION_FAILED = "SIGNATURE_GENERATION_FAILED",
    INVALID_PAYMENT_OPTIONS = "INVALID_PAYMENT_OPTIONS",
    INVALID_RESPONSE = "INVALID_RESPONSE",
    INVALID_VERIFICATION_OPTIONS = "INVALID_VERIFICATION_OPTIONS"
}
/**
 * Custom error class for payment-related errors
 */
export declare class PaymentError extends Error {
    code: PaymentErrorCode;
    constructor(message: string, code: PaymentErrorCode);
}
export declare enum PaymentEnvironment {
    SANDBOX = "sandbox",
    PRODUCTION = "production"
}
