/** * Configuration service for application-wide settings * * Provides centralized configuration including: * - Pattern source paths * - Default output formats * - Default palette names * * Configuration can be overridden via environment variables: * - PATTERN_SOURCE: Custom pattern file path * - DEFAULT_OUTPUT_FORMAT: Custom output format * - DEFAULT_PALETTE_NAME: Custom palette name * - MAX_CONCURRENCY: Custom concurrency limit * * All defaults are defined in src/config/defaults.ts (single source of truth) */ import { Effect } from "effect"; import type { ColorSpace } from "../schemas/color.js"; /** * Application configuration */ export interface AppConfig { readonly patternSource: string; readonly defaultOutputFormat: ColorSpace; readonly defaultPaletteName: string; readonly maxConcurrency: number; } declare const ConfigService_base: Effect.Service.Class Effect.Effect; /** * Get pattern source path * Convenience method for accessing just the pattern source */ getPatternSource: () => Effect.Effect; }, import("effect/ConfigError").ConfigError, never>; }>; /** * Configuration service using Effect.Service pattern * * Uses Effect.Config for declarative configuration with validation. * All defaults come from CONFIG_DEFAULTS (single source of truth). * * @example * ```typescript * Effect.gen(function*() { * const config = yield* ConfigService * const appConfig = yield* config.getConfig() * console.log(appConfig.patternSource) * }).pipe(Effect.provide(ConfigService.Default)) * ``` */ export declare class ConfigService extends ConfigService_base { /** * Test layer with fixed configuration for testing * * Provides a predictable configuration without relying on environment variables. * All test defaults come from CONFIG_DEFAULTS.test (single source of truth). */ static readonly Test: import("effect/Layer").Layer; } export {}; //# sourceMappingURL=ConfigService.d.ts.map