@hivetechs/hive-ai
Version:
Real-time streaming AI consensus platform with HTTP+SSE MCP integration for Claude Code, VS Code, Cursor, and Windsurf - powered by OpenRouter's unified API
170 lines • 4.5 kB
TypeScript
/**
* Data Export Service - Comprehensive data export capabilities
*
* Provides professional-grade data export functionality with support for
* multiple formats, custom templates, and automated report generation.
*/
export interface ExportTemplate {
id: string;
name: string;
description: string;
format: ExportFormat;
sections: ExportSection[];
styling?: ExportStyling;
metadata: {
version: string;
createdAt: string;
updatedAt: string;
author: string;
};
}
export interface ExportSection {
id: string;
title: string;
type: 'summary' | 'metrics' | 'charts' | 'recommendations' | 'raw_data' | 'custom';
enabled: boolean;
config: Record<string, any>;
filters?: ExportFilter[];
}
export interface ExportFilter {
field: string;
operator: 'equals' | 'contains' | 'greater_than' | 'less_than' | 'between';
value: any;
}
export interface ExportStyling {
theme: 'professional' | 'minimal' | 'corporate' | 'modern';
colors: {
primary: string;
secondary: string;
accent: string;
text: string;
background: string;
};
fonts: {
heading: string;
body: string;
code: string;
};
layout: {
pageSize: 'A4' | 'Letter' | 'Legal';
orientation: 'portrait' | 'landscape';
margins: {
top: number;
right: number;
bottom: number;
left: number;
};
};
}
export type ExportFormat = 'json' | 'csv' | 'excel' | 'pdf' | 'html' | 'markdown' | 'xml';
export interface ExportJob {
id: string;
status: 'pending' | 'processing' | 'completed' | 'failed';
progress: number;
templateId: string;
timeframe: string;
filters?: ExportFilter[];
createdAt: string;
completedAt?: string;
filePath?: string;
fileSize?: number;
error?: string;
}
export interface ExportResult {
success: boolean;
jobId: string;
filePath?: string;
fileSize?: number;
downloadUrl?: string;
expiresAt?: string;
error?: string;
}
export declare class DataExportService {
private templates;
private jobs;
private readonly EXPORT_DIR;
private readonly JOB_RETENTION_HOURS;
constructor();
/**
* Initialize default export templates
*/
private initializeDefaultTemplates;
/**
* Create export job
*/
createExportJob(templateId: string, timeframe: string, filters?: ExportFilter[]): Promise<ExportResult>;
/**
* Process export job
*/
private processExportJob;
/**
* Generate export content based on template
*/
private generateExportContent;
/**
* Generate JSON export
*/
private generateJSONExport;
/**
* Generate CSV export
*/
private generateCSVExport;
/**
* Generate Excel export (placeholder)
*/
private generateExcelExport;
/**
* Generate HTML export
*/
private generateHTMLExport;
/**
* Generate PDF export (placeholder)
*/
private generatePDFExport;
/**
* Generate Markdown export
*/
private generateMarkdownExport;
/**
* Generate XML export
*/
private generateXMLExport;
/**
* Helper methods for HTML generation
*/
private generateHTMLSummarySection;
private generateHTMLMetricsSection;
private generateHTMLRecommendationsSection;
/**
* Helper methods for Markdown generation
*/
private generateMarkdownSummarySection;
private generateMarkdownMetricsSection;
private generateMarkdownRecommendationsSection;
/**
* Utility methods
*/
private extractMetrics;
private getNestedValue;
private flattenMetricsToRows;
private categorizeMetric;
private applyFilters;
private saveExportFile;
private getDefaultStyling;
private startCleanupTimer;
private cleanupOldJobs;
/**
* Public API methods
*/
getJobStatus(jobId: string): ExportJob | undefined;
getAvailableTemplates(): ExportTemplate[];
createCustomTemplate(template: Omit<ExportTemplate, 'id'>): string;
updateTemplate(id: string, updates: Partial<ExportTemplate>): boolean;
deleteTemplate(id: string): boolean;
getExportHistory(): ExportJob[];
}
/**
* Global data export service instance
*/
export declare const globalDataExportService: DataExportService;
//# sourceMappingURL=data-export-service.d.ts.map