/**
* Statistical analysis of color palettes to extract transformation patterns
*/
import { Effect } from "effect";
import type { OKLCHColor } from "../color/color.schema.js";
import type { StopPosition } from "../palette/palette.schema.js";
import type { StopTransformMap } from "../types/collections.js";
/** Transformation for a single stop relative to a reference stop */
export interface StopTransform {
readonly lightnessMultiplier: number;
readonly chromaMultiplier: number;
readonly hueShiftDegrees: number;
}
/** Complete transformation pattern learned from example palettes */
export interface TransformationPattern {
readonly name: string;
readonly referenceStop: StopPosition;
readonly transforms: StopTransformMap;
readonly metadata: {
readonly sourceCount: number;
readonly confidence: number;
};
}
/** An analyzed palette with OKLCH colors */
export interface AnalyzedPalette {
readonly name: string;
readonly stops: ReadonlyArray<{
readonly position: StopPosition;
readonly color: OKLCHColor;
}>;
}
declare const PatternExtractionError_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: "PatternExtractionError";
} & Readonly;
/** Error when pattern extraction fails */
export declare class PatternExtractionError extends PatternExtractionError_base<{
readonly message: string;
readonly cause?: unknown;
}> {
}
/**
* Extract transformation patterns from analyzed palettes
*
* Calculates ratios for each stop relative to the reference stop (500).
* Returns Either.left if pattern extraction fails, Either.right with pattern otherwise.
*/
export declare const extractPatterns: (palettes: ReadonlyArray, referenceStop?: StopPosition) => Effect.Effect;
export {};
//# sourceMappingURL=pattern.d.ts.map