import { ConfigService } from '@nestjs/config'; import type { TypeOrmModuleOptions } from '@nestjs/typeorm'; import session from 'express-session'; import { Params } from 'nestjs-pino'; import { BullRootModuleOptions } from '@nestjs/bull/dist/interfaces/bull-module-options.interface'; import { AxiosProxyConfig } from 'axios'; import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface'; import { PinoEmailTransport } from '../../email-log'; export declare class ApiConfigService { private configService; static rootPath: string; constructor(configService: ConfigService); get isDev(): boolean; get apiVersion(): string; get isProd(): boolean; get isSit(): boolean; get isUat(): boolean; get isTest(): boolean; get nodeEnv(): string; get fallbackLanguage(): string; get typeormConfig(): TypeOrmModuleOptions; get documentationEnabled(): boolean; get documentationPath(): string; get viewsEnabled(): boolean; get sessionEnabled(): boolean; get corsEnabled(): boolean; get corsConfig(): CorsOptions; get sessionConfig(): session.SessionOptions; get authConfig(): { privateKey: string; publicKey: string; jwtExpirationTime: number; }; get appConfig(): { port: string; }; get apiKey(): string; get ioRedisConfig(): { host: string; port: number; username: string; password: string; db: number; }; /** * 是否使用Redis,用于health check */ get isRedisEnabled(): boolean; get bullConfig(): BullRootModuleOptions; get pinoConfig(): Params; /** * Get Pino multistream configuration with email transport * This method provides additional stream for email logging * Usage: pass to LoggerModule or use with pino.multistream() */ get pinoEmailStream(): { level: string; stream: any; }; get axiosProxyConfig(): AxiosProxyConfig | false; /** * Email log transport configuration * Returns null if email logging is disabled */ get emailLogConfig(): { enabled: boolean; to: string[]; from: string; level: string; subjectPrefix: string; smtpHost: string; smtpPort: number; smtpUsername: string; smtpPassword: string; smtpSecure: boolean; smtpIgnoreTLSError: boolean; rateLimitMaxEmails: number; rateLimitWindowMs: number; rateLimitBurstSize: number; useHtmlFormat: boolean; includeApps: string[]; excludeApps: string[]; includeErrors: string[]; excludeErrors: string[]; }; /** * Get Pino email transport instance * This returns a Pino transport that can be used directly with Pino logger * Usage: pino(transport) or add to multistream */ get pinoEmailTransport(): PinoEmailTransport; static getRootPath(): string; static toBoolean(value: string, defaultValue?: any): boolean; static isConfigEnabled(envVarName: string, defaultValue?: boolean): boolean; getNumber(key: string, defaultValue?: number): number; getBoolean(key: string, defaultValue?: boolean): boolean; getString(key: string, defaultValue?: string): string; private get; }