/**
 * Monetization Middleware for Express
 *
 * This middleware integrates with the MonetizationService to protect
 * endpoints based on user subscription and usage limits.
 */
import { Request, Response, NextFunction } from 'express';
import { MonetizationCheckResult } from '../services/monetization/monetization-service';
export interface MonetizationMiddlewareConfig {
    featureId: string;
    incrementUsage?: boolean;
    action?: 'video_generation' | 'source_video_upload' | 'voice_clone' | 'account_analysis';
    errorHandler?: (req: Request, res: Response, result: MonetizationCheckResult) => void;
}
export interface MonetizationRequest extends Request {
    monetization?: {
        hasAccess: boolean;
        currentPlan: string;
        remainingUsage: number;
        totalLimit: number;
        featureId: string;
    };
}
/**
 * Create monetization middleware for a specific feature
 */
export declare function createMonetizationMiddleware(config: MonetizationMiddlewareConfig): (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Middleware to increment usage after successful operation
 * This should be placed AFTER the main operation middleware
 */
export declare function createUsageIncrementMiddleware(): (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void>;
/**
 * Middleware to add monetization info to response headers
 */
export declare function addMonetizationHeaders(): (req: MonetizationRequest, res: Response, next: NextFunction) => void;
/**
 * Middleware to log monetization checks (development only)
 */
export declare function logMonetizationChecks(): (req: MonetizationRequest, res: Response, next: NextFunction) => void;
/**
 * Middleware for video generation endpoint
 */
export declare const videoGenerationMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Middleware for source video upload endpoint
 */
export declare const sourceVideoUploadMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Middleware for voice cloning endpoint
 */
export declare const voiceCloneMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Middleware for account analysis endpoint
 */
export declare const accountAnalysisMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Middleware for script generation (no usage increment)
 */
export declare const scriptGenerationMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Middleware for chat AI (no usage increment)
 */
export declare const chatAiMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
/**
 * Default error handler for monetization failures
 */
export declare function defaultMonetizationErrorHandler(req: Request, res: Response, result: MonetizationCheckResult): Response<any, Record<string, any>>;
/**
 * Custom error handler that returns a more user-friendly response
 */
export declare function userFriendlyMonetizationErrorHandler(req: Request, res: Response, result: MonetizationCheckResult): Response<any, Record<string, any>>;
//# sourceMappingURL=monetization-middleware.d.ts.map