/** * NestJS guard base class for network conditions */ import { ExecutionContext } from '@nestjs/common'; import type { NetworkInfo } from '@plyaz/types/api'; /** * NestJS guard to check network conditions * * @example * ```typescript * import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; * import { NetworkGuard } from '@plyaz/api/network/frameworks/nestjs'; * * @Injectable() * export class HighQualityOnlyGuard extends NetworkGuard { * canActivate(context: ExecutionContext): boolean { * const networkInfo = this.getNetworkInfo(context); * return networkInfo.effectiveType === '4g' && !networkInfo.saveData; * } * } * * @Controller('api') * @UseGuards(HighQualityOnlyGuard) * export class HighQualityController { * // Routes here only accessible on 4G without data saver * } * ``` */ export declare abstract class NetworkGuard { protected getNetworkInfo(context: ExecutionContext): NetworkInfo; abstract canActivate(context: ExecutionContext): boolean | Promise; } //# sourceMappingURL=networkGuard.d.ts.map