/**
 * Cell-item RPC handlers.
 *
 * Four `request_response` actions bound to the specs in
 * `./cell_item_action_specs.ts`:
 *
 * - `cell_item_insert` — admin / owner / editor-grant on `parent` may
 *   insert; `child` must be view-admitted. Returns
 *   `cell_item_position_taken` on `(parent_id, position)` unique
 *   violation; client refreshes bracket and retries.
 * - `cell_item_move` — admin / owner / editor-grant on `parent`. Same
 *   collision-error shape as insert.
 * - `cell_item_delete` — admin / owner / editor-grant on `parent`.
 *   Idempotent: `deleted: false` when no row matched.
 * - `cell_item_list` — bidirectional. Forward (pass `parent_id`) is
 *   gated on `can_view_cell(parent)` and filters children to those the
 *   caller may view (strict target-visibility, batched). Reverse (pass
 *   `child_id`) has 2-layer authz: gate on `can_view_cell(child)`, then
 *   filter rows by `can_view_cell(parent)`.
 *
 * IDOR-mask 404s on cell-miss / cell-unviewable, mirroring the existence-
 * leak guards in `cell_actions.ts`.
 *
 * Audit events `cell_item_insert` / `cell_item_move` / `cell_item_delete`
 * carry IDs only — see `./cell_item_audit_metadata.ts`.
 *
 * @module
 */
import { type RpcAction } from '../actions/action_rpc.js';
import type { RouteFactoryDeps } from './deps.js';
import { type ItemJson } from './cell_item_action_specs.js';
import { type CellItemRow } from '../db/cell_item_queries.js';
export type CellItemActionDeps = Pick<RouteFactoryDeps, 'log' | 'audit'>;
export declare const to_item_json: (row: CellItemRow) => ItemJson;
/** Create the four `cell_item_*` RPC actions. */
export declare const create_cell_item_actions: (deps: CellItemActionDeps) => Array<RpcAction>;
//# sourceMappingURL=cell_item_actions.d.ts.map