import { z } from 'zod'; export interface BulkTrackingJob { id: string; userId: string; organizationId?: string; projectId?: string; urls: Array<{ url: string; label?: string; metadata?: Record; }>; options: { method: 'GET' | 'POST' | 'HEAD'; userAgent?: string; maxHops: number; timeout: number; enableSSLAnalysis: boolean; enableSEOAnalysis: boolean; enableSecurityAnalysis: boolean; headers?: Record; }; status: 'PENDING' | 'QUEUED' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'CANCELLED' | 'ERROR'; progress: { total: number; processed: number; successful: number; failed: number; }; results?: Array<{ url: string; label?: string; checkId?: string; status: 'success' | 'failed'; error?: string; timing: { startedAt: Date; finishedAt?: Date; durationMs?: number; }; }>; createdAt: Date; startedAt?: Date; finishedAt?: Date; estimatedCompletionAt?: Date; } declare const BulkJobCreateSchema: z.ZodObject<{ projectId: z.ZodOptional; urls: z.ZodArray; metadata: z.ZodOptional>; }, "strip", z.ZodTypeAny, { url?: string; label?: string; metadata?: Record; }, { url?: string; label?: string; metadata?: Record; }>, "many">; options: z.ZodDefault>; userAgent: z.ZodOptional; maxHops: z.ZodDefault; timeout: z.ZodDefault; enableSSLAnalysis: z.ZodDefault; enableSEOAnalysis: z.ZodDefault; enableSecurityAnalysis: z.ZodDefault; headers: z.ZodOptional>; }, "strip", z.ZodTypeAny, { headers?: Record; timeout?: number; method?: "GET" | "HEAD" | "POST"; userAgent?: string; maxHops?: number; enableSSLAnalysis?: boolean; enableSEOAnalysis?: boolean; enableSecurityAnalysis?: boolean; }, { headers?: Record; timeout?: number; method?: "GET" | "HEAD" | "POST"; userAgent?: string; maxHops?: number; enableSSLAnalysis?: boolean; enableSEOAnalysis?: boolean; enableSecurityAnalysis?: boolean; }>>; }, "strip", z.ZodTypeAny, { options?: { headers?: Record; timeout?: number; method?: "GET" | "HEAD" | "POST"; userAgent?: string; maxHops?: number; enableSSLAnalysis?: boolean; enableSEOAnalysis?: boolean; enableSecurityAnalysis?: boolean; }; projectId?: string; urls?: { url?: string; label?: string; metadata?: Record; }[]; }, { options?: { headers?: Record; timeout?: number; method?: "GET" | "HEAD" | "POST"; userAgent?: string; maxHops?: number; enableSSLAnalysis?: boolean; enableSEOAnalysis?: boolean; enableSecurityAnalysis?: boolean; }; projectId?: string; urls?: { url?: string; label?: string; metadata?: Record; }[]; }>; declare const CsvRowSchema: z.ZodObject<{ url: z.ZodString; label: z.ZodOptional; method: z.ZodOptional>; user_agent: z.ZodOptional; max_hops: z.ZodOptional; timeout: z.ZodOptional; enable_ssl: z.ZodOptional; enable_seo: z.ZodOptional; enable_security: z.ZodOptional; }, "strip", z.ZodTypeAny, { timeout?: string; url?: string; method?: "GET" | "HEAD" | "POST"; label?: string; user_agent?: string; max_hops?: string; enable_ssl?: string; enable_seo?: string; enable_security?: string; }, { timeout?: string; url?: string; method?: "GET" | "HEAD" | "POST"; label?: string; user_agent?: string; max_hops?: string; enable_ssl?: string; enable_seo?: string; enable_security?: string; }>; export type BulkJobCreateRequest = z.infer; export type CsvRow = z.infer; export declare class BulkProcessorService { private readonly uploadsDir; private readonly inMemoryJobs; constructor(); private ensureUploadsDirectory; parseCsvFile(filePath: string): Promise; }>>; private parseBoolean; createBulkJob(userId: string, organizationId: string | undefined, jobData: BulkJobCreateRequest, filePath?: string): Promise; createBulkJobFromCsv(userId: string, organizationId: string | undefined, filePath: string, projectId: string, options?: Partial): Promise; getBulkJob(jobId: string, userId: string): Promise; private calculateEstimatedCompletion; cancelBulkJob(jobId: string, userId: string): Promise; getUserBulkJobs(userId: string, limit?: number, offset?: number): Promise; exportResultsToCsv(jobId: string, userId: string): Promise; cleanupOldJobs(maxAgeHours?: number): Promise; getQueueStats(): Promise<{ waiting: number; active: number; completed: number; failed: number; delayed: number; }>; private processBulkJobInMemory; } export {}; //# sourceMappingURL=bulk-processor.service.d.ts.map