import type { ImageDocument } from "@core/document"; import type { Angle, Size, Vec2D } from "@core/geometry"; import type { ArtboardId, LayerId } from "@core/id"; import type { ToolState } from "./tools"; export type ViewportState = { center: Vec2D; zoom: number; rotation: Angle; size: Size; }; export type SelectionState = { artboardId?: ArtboardId; layerIds: LayerId[]; }; export type EditorState = { viewport: ViewportState; selection: SelectionState; tools: ToolState; }; export type AppState = { document: ImageDocument; editor: EditorState; };