import type { Context } from '@kubun/graphql'; import type { AccessLevel } from './access-control.js'; import type { ApplyVerifiedMutationResult, CreateContextParams } from './engine-types.js'; /** * The visible lifecycle transition an applied mutation produces, driving the * `document:created` / `document:updated` / `document:removed` / `document:saved` * events. A first-seen `never-live → dead` result (no pre-state, a null-data * post-state — a tombstone establishing a row for a document never observed * live) is `none`: it is not a visible state change, so it emits no lifecycle * event. Callers must filter out `dropped` results first — a dropped result has * no post-state to classify. */ export declare function classifyVisibleTransition(result: ApplyVerifiedMutationResult): 'none' | 'create' | 'update' | 'remove'; /** * The replication classification an applied mutation carries on the * always-emitted `engine:mutation:authored` / `engine:mutation:received` event. * Unlike the visible transition, a first-seen dead result is `remove` (a real * mutation that must replicate exactly once), never `none`. Callers must filter * out `dropped` results first. */ export declare function classifyReplicationType(result: ApplyVerifiedMutationResult): 'create' | 'update' | 'remove'; export declare function assertAccessLevel(value: string): AccessLevel; export declare function assertPermissionType(value: string): 'read' | 'write'; export declare function createContext(params: CreateContextParams): Context & Record;