/** * Comprehensive Security and Validation Layer * Provides security features, input sanitization, and path validation for production use */ export interface SecurityConfig { allowedFileExtensions: string[]; allowedImageExtensions: string[]; allowedMediaExtensions: string[]; maxFileSize: number; maxImageSize: number; maxMediaSize: number; allowedDirectories: string[]; blockedDirectories: string[]; enablePathTraversalProtection: boolean; enableInputSanitization: boolean; maxStringLength: number; maxArrayLength: number; rateLimitRequests: number; rateLimitWindow: number; } export declare const DEFAULT_SECURITY_CONFIG: SecurityConfig; export declare class SecurityValidator { private config; private requestCounts; constructor(config?: SecurityConfig); /** * Validate file path for security issues */ validateFilePath(filePath: string, fileType?: 'presentation' | 'image' | 'media'): void; /** * Validate file size */ validateFileSize(filePath: string, fileType?: 'presentation' | 'image' | 'media'): Promise; /** * Sanitize string input */ sanitizeString(input: string, fieldName?: string): string; /** * Validate array input */ validateArray(input: any[], fieldName?: string): void; /** * Validate numeric input */ validateNumber(input: number, fieldName: string, min?: number, max?: number): void; /** * Rate limiting check */ checkRateLimit(clientId: string): void; /** * Validate color input (hex codes) */ validateColor(color: string, fieldName?: string): string; /** * Comprehensive input validation for PowerPoint operations */ validatePowerPointInput(input: any, operation: string): any; } export declare class SecurityError extends Error { constructor(message: string); } export declare const securityUtils: { /** * Generate secure random ID */ generateSecureId(): string; /** * Hash sensitive data */ hashSensitiveData(data: string): string; /** * Validate email format */ validateEmail(email: string): boolean; /** * Validate URL format */ validateUrl(url: string): boolean; }; export declare const securityValidator: SecurityValidator; //# sourceMappingURL=security.d.ts.map