/** * Compression control decorators (@Compress, @NoCompress) * * These decorators allow per-route control over compression: * - @Compress(options?) - Force compression with optional settings * - @NoCompress() - Disable compression for this route (useful for SSE, streaming) */ /** * @Compress decorator - Force compression on a route with optional settings * * @example * ```typescript * @Controller('/api') * class ApiController { * @Get('/heavy-data') * @Compress({ level: 11 }) // Max brotli compression * getHeavyData() { * return massiveJsonData; * } * * @Get('/data') * @Compress() // Use default settings * getData() { * return jsonData; * } * } * ``` */ export declare function Compress(options?: { level?: number; }): (target: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext Return>) => (this: This, ...args: Args) => Return; /** * @NoCompress decorator - Disable compression for a route * * Useful for: * - Server-Sent Events (SSE) * - Streaming responses * - Already-compressed content * - Real-time data where latency is critical * * @example * ```typescript * @Controller('/api') * class EventController { * @Get('/events') * @NoCompress() // SSE should not be compressed * getEvents() { * return new Response(eventStream, { * headers: { 'Content-Type': 'text/event-stream' } * }); * } * * @Get('/video/:id') * @NoCompress() // Already compressed media * getVideo() { * return videoStream; * } * } * ``` */ export declare function NoCompress(): (target: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext Return>) => (this: This, ...args: Args) => Return;