/**
* Pattern loading I/O implementations.
*
* Factory functions that create LoadPattern functions for different environments:
* - Filesystem (CLI)
* - In-memory (testing)
* - HTTP (future web consumer)
*/
import { FileSystem } from "@effect/platform";
import { Effect } from "effect";
import type { AnalyzedPalette, TransformationPattern } from "../domain/pattern/pattern.js";
declare const PatternLoadError_base: new = {}>(args: import("effect/Types").Equals extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
readonly _tag: "PatternLoadError";
} & Readonly;
/** Error when pattern loading fails */
export declare class PatternLoadError extends PatternLoadError_base<{
readonly message: string;
readonly cause?: unknown;
}> {
}
/** Function type for loading patterns - implementations vary by platform */
export type LoadPattern = (source: string) => Effect.Effect;
/** Function type for loading raw palettes */
export type LoadPalette = (source: string) => Effect.Effect;
/**
* Create a pattern loader that reads from the filesystem.
*
* @param fs - Effect FileSystem service
* @returns LoadPattern function that loads patterns from file paths
*/
export declare const makeFilePatternLoader: (fs: FileSystem.FileSystem) => LoadPattern;
/**
* Create a palette loader that reads from the filesystem.
*
* @param fs - Effect FileSystem service
* @returns LoadPalette function that loads palettes from file paths
*/
export declare const makeFilePaletteLoader: (fs: FileSystem.FileSystem) => LoadPalette;
/**
* Create a pattern loader from an in-memory map.
*
* Useful for testing without filesystem access.
*
* @param patterns - Map of source identifiers to patterns
* @returns LoadPattern function that looks up patterns in the map
*/
export declare const makeMemoryPatternLoader: (patterns: ReadonlyMap) => LoadPattern;
/**
* Create a palette loader from an in-memory map.
*
* @param palettes - Map of source identifiers to palettes
* @returns LoadPalette function that looks up palettes in the map
*/
export declare const makeMemoryPaletteLoader: (palettes: ReadonlyMap) => LoadPalette;
export {};
//# sourceMappingURL=patternLoader.d.ts.map