/** * Canonical audit action names — Oshon's controlled vocabulary. * * Every primitive and data component draws from this catalog when * emitting audit events. Ad-hoc strings are a lint smell: consumers who * index on `action === 'click'` (without a component namespace) end up * with ambiguous event streams, and downstream governance (§5 ARCH * `@oshon-ai/governance`) can't classify what it's seeing. * * Naming convention (ADR-004): * `:` * - `` is a primitive name (`button`, `dialog`, `tooltip`) * or a resource class (`data`, `row`, `settings`). Always lowercase. * - `` is present-tense (`click`, `open`, `sort`) or a past * participle when the event fires after-the-fact (`denied`). * * See ARCHITECTURE.md §10 for the built-in actions list and the rule * that governance reports group by namespace. */ /** Primitive-emitted actions (Phase 3a + 3b scope). */ export declare const PRIMITIVE_ACTIONS: { readonly BUTTON_CLICK: "button:click"; readonly DIALOG_OPEN: "dialog:open"; readonly DIALOG_CLOSE: "dialog:close"; readonly INPUT_CHANGE: "input:change"; readonly INPUT_BLUR: "input:blur"; readonly SELECT_OPEN: "select:open"; readonly SELECT_CLOSE: "select:close"; readonly SELECT_CHANGE: "select:change"; readonly POPOVER_OPEN: "popover:open"; readonly POPOVER_CLOSE: "popover:close"; readonly TABS_CHANGE: "tabs:change"; readonly TOGGLE_CHANGE: "toggle:change"; }; /** Data-component actions (Phase 4+ scope per ARCHITECTURE §10). */ export declare const DATA_ACTIONS: { readonly DATA_READ: "data:read"; readonly DATA_SORT: "data:sort"; readonly DATA_FILTER: "data:filter"; readonly DATA_SELECT: "data:select"; readonly DATA_BULK: "data:bulk"; readonly DATA_EXPORT: "data:export"; readonly DATA_EDIT: "data:edit"; /** Multi-level row grouping (Phase B). `details.grouping = string[]`. */ readonly DATA_GROUP: "data:group"; /** Row expansion — group collapse/expand or master-detail (Phase B/C). */ readonly DATA_EXPAND: "data:expand"; /** Column-order transition (Phase D drag-to-reorder). `details.order = string[]`. */ readonly DATA_REORDER: "data:reorder"; /** Column-visibility transition (Phase D show/hide). `details.visibility = Record`. */ readonly DATA_VISIBILITY: "data:visibility"; /** Cell-range transition (Phase F spreadsheet-style selection). `details.range = { r1, c1, r2, c2 }`. */ readonly DATA_RANGE: "data:range"; /** Fill-handle commit (Phase F). `details.writes = Record<"r:c", value>`. */ readonly DATA_FILL: "data:fill"; /** Column pin / unpin (freeze). `details.pinning = { left: string[], right: string[] }`. */ readonly DATA_PIN: "data:pin"; readonly ROW_VIEW: "row:view"; readonly ROW_EDIT: "row:edit"; readonly ROW_DELETE: "row:delete"; readonly SETTINGS_VIEW: "settings:view"; readonly SETTINGS_EDIT: "settings:edit"; readonly PERMISSION_DENIED: "permission:denied"; }; /** * The full canonical catalog. Governance / drift-detection (Phase 5) * walks this set to classify event streams. */ export declare const CANONICAL_ACTIONS: { readonly DATA_READ: "data:read"; readonly DATA_SORT: "data:sort"; readonly DATA_FILTER: "data:filter"; readonly DATA_SELECT: "data:select"; readonly DATA_BULK: "data:bulk"; readonly DATA_EXPORT: "data:export"; readonly DATA_EDIT: "data:edit"; /** Multi-level row grouping (Phase B). `details.grouping = string[]`. */ readonly DATA_GROUP: "data:group"; /** Row expansion — group collapse/expand or master-detail (Phase B/C). */ readonly DATA_EXPAND: "data:expand"; /** Column-order transition (Phase D drag-to-reorder). `details.order = string[]`. */ readonly DATA_REORDER: "data:reorder"; /** Column-visibility transition (Phase D show/hide). `details.visibility = Record`. */ readonly DATA_VISIBILITY: "data:visibility"; /** Cell-range transition (Phase F spreadsheet-style selection). `details.range = { r1, c1, r2, c2 }`. */ readonly DATA_RANGE: "data:range"; /** Fill-handle commit (Phase F). `details.writes = Record<"r:c", value>`. */ readonly DATA_FILL: "data:fill"; /** Column pin / unpin (freeze). `details.pinning = { left: string[], right: string[] }`. */ readonly DATA_PIN: "data:pin"; readonly ROW_VIEW: "row:view"; readonly ROW_EDIT: "row:edit"; readonly ROW_DELETE: "row:delete"; readonly SETTINGS_VIEW: "settings:view"; readonly SETTINGS_EDIT: "settings:edit"; readonly PERMISSION_DENIED: "permission:denied"; readonly BUTTON_CLICK: "button:click"; readonly DIALOG_OPEN: "dialog:open"; readonly DIALOG_CLOSE: "dialog:close"; readonly INPUT_CHANGE: "input:change"; readonly INPUT_BLUR: "input:blur"; readonly SELECT_OPEN: "select:open"; readonly SELECT_CLOSE: "select:close"; readonly SELECT_CHANGE: "select:change"; readonly POPOVER_OPEN: "popover:open"; readonly POPOVER_CLOSE: "popover:close"; readonly TABS_CHANGE: "tabs:change"; readonly TOGGLE_CHANGE: "toggle:change"; }; /** Type-level union of every canonical action. */ export type CanonicalAction = (typeof CANONICAL_ACTIONS)[keyof typeof CANONICAL_ACTIONS]; /** True if `s` is a recognised canonical action. */ export declare function isCanonicalAction(s: string): s is CanonicalAction; /** * Parse a namespaced action into `{ namespace, verb }`. Returns `null` * for malformed strings (missing colon, empty halves). Governance reports * use this to group event streams by namespace. */ export declare function parseAction(action: string): { namespace: string; verb: string; } | null; //# sourceMappingURL=actions.d.cts.map