import type { NPoint } from './effects';

export type SceneDarknessRevealStroke = {
  id: string;
  seed: number;
  createdAtMs: number;
  points: NPoint[];
  radiusN: number;
};

export type SceneDarknessState = {
  revision: number;
  /** Текущая сцена помечена «Затемнить сцену» (только для изображений). */
  enabled: boolean;
  cacheKey: string | null;
  strokes: SceneDarknessRevealStroke[];
  draft: { points: NPoint[]; radiusN: number } | null;
};

export type SceneDarknessEvent =
  | { kind: 'draft.set'; draft: { points: NPoint[]; radiusN: number } | null }
  | { kind: 'stroke.add'; stroke: SceneDarknessRevealStroke };
