/**
 * Cell-item RPC specs — declarative contract for the four ordered-child
 * verbs (`insert` / `move` / `delete` / `list`).
 *
 * `(parent_id, position) → child_id` rows. `position` is opaque text
 * (fractional-indexing key); the wire validates the alphabet
 * (`^[0-9A-Za-z]+$`) and length, the lex-ordering invariant is the
 * client's contract.
 *
 * @module
 */
import { z } from 'zod';
/** Error reason — `cell_item_list` got neither `parent_id` nor `child_id`. */
export declare const ERROR_CELL_ITEM_LIST_REQUIRES_PARENT_OR_CHILD: "cell_item_list_requires_parent_or_child";
/**
 * Error reason — `(parent_id, position)` collision on `cell_item_insert`
 * or `cell_item_move`. Surfaces when two clients computed the same
 * fractional-indexing key (rare given helper-side jitter; the safety
 * net for the residual race). Client refreshes its bracket and retries.
 */
export declare const ERROR_CELL_ITEM_POSITION_TAKEN: "cell_item_position_taken";
/**
 * Position grammar — base62 fractional-indexing key. Wire enforces
 * non-empty, alphabet only, and the helper's `FRACTIONAL_INDEX_LENGTH_MAX`
 * cap (well above realistic lengths even for hundreds of consecutive
 * front-inserts; set high to avoid arbitrary cliffs). Lex ordering is the
 * contract; the no-trailing-`'0'` invariant lives in the helper, not the
 * wire.
 */
export declare const CellItemPosition: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
export type CellItemPosition = z.infer<typeof CellItemPosition>;
/**
 * Wire-format for a `cell_item` row.
 *
 * `position` is branded `CellItemPosition` so consumers that round-trip
 * the value back into a `position_after` / `position` input field don't
 * need a cast at every call site. Wire ingress is validated by the
 * `CellItemPosition` Zod schema (alphabet + length); wire egress trusts
 * the DB CHECK constraint that backs `cell_item.position`, so the
 * server-side `to_item_json` casts a raw string from `CellItemRow`.
 */
export declare const ItemJson: z.ZodObject<{
    parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
    position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
    child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
    created_at: z.ZodString;
}, z.core.$strict>;
export type ItemJson = z.infer<typeof ItemJson>;
/**
 * Input for `cell_item_insert`. Caller computes `position` via
 * `fractional_index_between(prev, next)` (`@fuzdev/fuz_util/fractional_index.js`)
 * client-side. Returns `cell_item_position_taken` on `(parent_id,
 * position)` unique violation; client refreshes bracket and retries.
 */
export declare const CellItemInsertInput: z.ZodObject<{
    parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
    child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
    position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
    acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
}, z.core.$strict>;
export type CellItemInsertInput = z.infer<typeof CellItemInsertInput>;
export declare const CellItemInsertOutput: z.ZodObject<{
    item: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        created_at: z.ZodString;
    }, z.core.$strict>;
}, z.core.$strict>;
export type CellItemInsertOutput = z.infer<typeof CellItemInsertOutput>;
/**
 * Input for `cell_item_move`. Move within the same parent (cross-parent
 * moves are a future extension).
 */
export declare const CellItemMoveInput: z.ZodObject<{
    parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
    position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
    new_position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
    acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
}, z.core.$strict>;
export type CellItemMoveInput = z.infer<typeof CellItemMoveInput>;
export declare const CellItemMoveOutput: z.ZodObject<{
    item: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        created_at: z.ZodString;
    }, z.core.$strict>;
}, z.core.$strict>;
export type CellItemMoveOutput = z.infer<typeof CellItemMoveOutput>;
/** Input for `cell_item_delete`. Idempotent on the slot key. */
export declare const CellItemDeleteInput: z.ZodObject<{
    parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
    position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
    acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
}, z.core.$strict>;
export type CellItemDeleteInput = z.infer<typeof CellItemDeleteInput>;
export declare const CellItemDeleteOutput: z.ZodObject<{
    ok: z.ZodLiteral<true>;
    deleted: z.ZodBoolean;
}, z.core.$strict>;
export type CellItemDeleteOutput = z.infer<typeof CellItemDeleteOutput>;
/**
 * Input for `cell_item_list`. Pass `parent_id` for forward items or
 * `child_id` for reverse lists — exactly one. Reverse listing has 2-layer
 * authz (child view-check gates the call; per-parent view-check filters
 * the rows).
 *
 * Forward listing supports cursor pagination via `position_after`
 * (return rows with `position > position_after`). The reverse listing
 * doesn't paginate (the result set is small in practice — number of
 * parents containing a given child).
 */
export declare const CellItemListInput: z.ZodObject<{
    parent_id: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    child_id: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    position_after: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">>;
    limit: z.ZodOptional<z.ZodNumber>;
    acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
}, z.core.$strict>;
export type CellItemListInput = z.infer<typeof CellItemListInput>;
export declare const CellItemListOutput: z.ZodObject<{
    items: z.ZodArray<z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        created_at: z.ZodString;
    }, z.core.$strict>>;
}, z.core.$strict>;
export type CellItemListOutput = z.infer<typeof CellItemListOutput>;
export declare const cell_item_insert_action_spec: {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "required";
        actor: "required";
    };
    side_effects: true;
    input: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        item: z.ZodObject<{
            parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
            child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            created_at: z.ZodString;
        }, z.core.$strict>;
    }, z.core.$strict>;
    async: true;
    description: string;
};
export declare const cell_item_move_action_spec: {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "required";
        actor: "required";
    };
    side_effects: true;
    input: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        new_position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        item: z.ZodObject<{
            parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
            child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            created_at: z.ZodString;
        }, z.core.$strict>;
    }, z.core.$strict>;
    async: true;
    description: string;
};
export declare const cell_item_delete_action_spec: {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "required";
        actor: "required";
    };
    side_effects: true;
    input: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        ok: z.ZodLiteral<true>;
        deleted: z.ZodBoolean;
    }, z.core.$strict>;
    async: true;
    description: string;
};
export declare const cell_item_list_action_spec: {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "optional";
        actor: "optional";
    };
    side_effects: false;
    input: z.ZodObject<{
        parent_id: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
        child_id: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
        position_after: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">>;
        limit: z.ZodOptional<z.ZodNumber>;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        items: z.ZodArray<z.ZodObject<{
            parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
            child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            created_at: z.ZodString;
        }, z.core.$strict>>;
    }, z.core.$strict>;
    async: true;
    rate_limit: "ip";
    description: string;
};
/** All cell_item action specs — composed into `all_cell_action_specs`. */
export declare const all_cell_item_action_specs: readonly [{
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "required";
        actor: "required";
    };
    side_effects: true;
    input: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        item: z.ZodObject<{
            parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
            child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            created_at: z.ZodString;
        }, z.core.$strict>;
    }, z.core.$strict>;
    async: true;
    description: string;
}, {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "required";
        actor: "required";
    };
    side_effects: true;
    input: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        new_position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        item: z.ZodObject<{
            parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
            child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            created_at: z.ZodString;
        }, z.core.$strict>;
    }, z.core.$strict>;
    async: true;
    description: string;
}, {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "required";
        actor: "required";
    };
    side_effects: true;
    input: z.ZodObject<{
        parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
        position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        ok: z.ZodLiteral<true>;
        deleted: z.ZodBoolean;
    }, z.core.$strict>;
    async: true;
    description: string;
}, {
    method: string;
    kind: "request_response";
    initiator: "frontend";
    auth: {
        account: "optional";
        actor: "optional";
    };
    side_effects: false;
    input: z.ZodObject<{
        parent_id: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
        child_id: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
        position_after: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">>;
        limit: z.ZodOptional<z.ZodNumber>;
        acting: z.ZodOptional<z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">>;
    }, z.core.$strict>;
    output: z.ZodObject<{
        items: z.ZodArray<z.ZodObject<{
            parent_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            position: z.core.$ZodBranded<z.ZodString, "CellItemPosition", "out">;
            child_id: z.core.$ZodBranded<z.ZodUUID, "Uuid", "out">;
            created_at: z.ZodString;
        }, z.core.$strict>>;
    }, z.core.$strict>;
    async: true;
    rate_limit: "ip";
    description: string;
}];
//# sourceMappingURL=cell_item_action_specs.d.ts.map