@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
100 lines • 2.54 kB
TypeScript
/**
* ExportManager - Handles data export functionality for large datasets
* Supports CSV, JSON, and YAML formats with configurable options
*/
export interface ExportOptions {
format: 'csv' | 'json' | 'yaml';
filename?: string;
include_metadata?: boolean;
pretty_print?: boolean;
custom_fields?: string[];
exclude_fields?: string[];
output_directory?: string;
}
export interface ExportMetadata {
exported_at: string;
total_records: number;
format: string;
source_query?: string;
pagination_info?: any;
export_options: ExportOptions;
}
export interface ExportResult {
success: boolean;
file_path?: string;
total_records: number;
format: string;
file_size_bytes?: number;
export_time_ms: number;
error?: string;
}
/**
* Main ExportManager class for handling data exports
*/
export declare class ExportManager {
private defaultOutputDir;
constructor(outputDir?: string);
/**
* Export data to the specified format
*/
export(data: any[], options: ExportOptions, metadata?: Partial<ExportMetadata>): Promise<ExportResult>;
/**
* Process data according to field selection options
*/
private processData;
/**
* Generate filename based on options and current timestamp
*/
private generateFilename;
/**
* Generate CSV content
*/
private generateCSV;
/**
* Generate JSON content
*/
private generateJSON;
/**
* Generate YAML content
*/
private generateYAML;
/**
* Get all unique headers from array of objects
*/
private getAllHeaders;
/**
* Recursively extract all keys from an object, using dot notation for nested objects
*/
private extractKeys;
/**
* Get nested value using dot notation
*/
private getNestedValue;
/**
* Escape CSV values
*/
private escapeCsvValue;
/**
* Generate metadata comment for CSV files
*/
private generateMetadataComment;
/**
* Validate export options
*/
static validateOptions(options: ExportOptions): {
valid: boolean;
errors: string[];
};
/**
* Get export format suggestions based on data characteristics
*/
static getFormatSuggestions(data: any[], recordCount: number): {
recommended: string;
reasons: string[];
alternatives: Array<{
format: string;
reason: string;
}>;
};
}
//# sourceMappingURL=ExportManager.d.ts.map