/** * The dresses the canvas can wear (ADR 0148). * * Five looks for how subjects and edges draw, all over the same notation - * shapes by aspect, arrowheads by kind, glyphs, badges - so only the dress * changes and never what a shape means. Each preset is a list of stylesheet * blocks appended after the base and notation rules, so it wins on the * properties it names and inherits everything else; `current` appends * nothing. A style is the reviewer's, not the view's: it is remembered in the * browser and never written into a projection. */ import type cytoscape from 'cytoscape'; export declare const STYLE_PRESET_IDS: readonly ['current', 'drafting', 'ink', 'tinted', 'dark']; export type StylePresetId = (typeof STYLE_PRESET_IDS)[number]; export interface StylePreset { readonly id: StylePresetId; readonly title: string; readonly blurb: string; /** The canvas ground behind the drawing; undefined keeps the shell's paper. */ readonly canvas?: string; /** The stroke the kind glyphs draw with; undefined keeps the notation's ink. */ readonly glyph?: string; } export declare const STYLE_PRESETS: readonly StylePreset[]; export declare const DEFAULT_STYLE_PRESET: StylePresetId; /** * Where the browser remembers the reviewer's pick. A style is a preference * about looking, not a fact about the model, so it lives with the browser * rather than in a projection or the layout sidecar; a fresh browser opens * on `current`. Every access is guarded: storage can be absent or refused. */ export declare const STYLE_STORAGE_KEY = "yarramate-visual.style"; export declare const readStoredStylePreset: () => StylePresetId; export declare const storeStylePreset: (preset: StylePresetId) => void; export declare const stylePresetOf: (id: StylePresetId) => StylePreset; export declare const isStylePresetId: (value: unknown) => value is StylePresetId; type Block = cytoscape.StylesheetJsonBlock; export declare const presetBlocks: (id: StylePresetId) => Block[]; export {};