/** * Streaming utilities for handling large result sets * Implements streaming responses for better performance and memory usage */ export interface StreamingOptions { batchSize?: number; delay?: number; transformItem?: (item: unknown) => unknown; filterItem?: (item: unknown) => boolean; } export interface StreamingResult { data: T[]; hasMore: boolean; cursor?: string | undefined; total?: number | undefined; processed: number; } /** * Creates a streaming response for large datasets */ export declare class DataStreamer { private batchSize; private delay; private transformItem; private filterItem; constructor(options?: StreamingOptions); /** * Processes data in batches with streaming */ streamBatches(data: T[], processor: (batch: T[]) => Promise): AsyncGenerator, void, unknown>; /** * Processes large datasets with pagination */ streamPages(fetcher: (page: number, perPage: number) => Promise<{ data: T[]; hasMore: boolean; }>, processor: (items: T[]) => Promise): AsyncGenerator, void, unknown>; } /** * Streaming formatter for WordPress data */ export declare class WordPressDataStreamer { /** * Streams WordPress posts with author and taxonomy information */ static streamPosts(posts: unknown[], options?: { includeAuthor?: boolean; includeCategories?: boolean; includeTags?: boolean; batchSize?: number; }): AsyncGenerator, void, unknown>; /** * Streams WordPress users with role information */ static streamUsers(users: unknown[], options?: { includeRoles?: boolean; includeCapabilities?: boolean; batchSize?: number; }): AsyncGenerator, void, unknown>; /** * Streams WordPress comments with moderation status */ static streamComments(comments: unknown[], options?: { includeAuthor?: boolean; includePost?: boolean; batchSize?: number; }): AsyncGenerator, void, unknown>; } /** * Utility functions for streaming responses */ export declare class StreamingUtils { /** * Formats streaming results for display */ static formatStreamingResponse(results: StreamingResult[], type?: "posts" | "users" | "comments" | "media"): string; /** * Implements progressive loading for large datasets */ static loadProgressively(fetcher: (offset: number, limit: number) => Promise, options?: { initialLoad?: number; batchSize?: number; maxItems?: number; onProgress?: (loaded: number, total?: number) => void; }): Promise; } /** * Memory-efficient data processor */ export declare class MemoryEfficientProcessor { /** * Processes large datasets with memory monitoring */ static processLargeDataset(dataProvider: () => AsyncGenerator, processor: (items: T[]) => Promise, options?: { maxMemoryUsage?: number; batchSize?: number; onProgress?: (processed: number) => void; }): Promise; /** * Helper method to split arrays into chunks */ private static chunkArray; } //# sourceMappingURL=streaming.d.ts.map