/**
 * Typed render contracts — list (flat) and grouped-list.
 *
 * Part of the Human Render Contract (Epic T10114, ADR-077). The list shape is
 * the canonical wire format for ordered or grouped sequential output —
 * presenters render each item according to `renderItem` (or a default).
 *
 * @epic T10114
 * @task T10140
 */
/**
 * Runtime type guard for `ListResponse<T>`.
 *
 * Checks the envelope shape only — does not inspect item payloads against `T`.
 *
 * @param value — candidate value to inspect.
 * @returns `true` iff `value` matches the `ListResponse<T>` envelope shape.
 */
export function isListResponse(value) {
    if (typeof value !== 'object' || value === null)
        return false;
    const v = value;
    return Array.isArray(v.items) && typeof v.total === 'number';
}
/**
 * Runtime type guard for `GroupedListResponse<T>`.
 *
 * Checks the envelope shape only — does not inspect item payloads against `T`.
 *
 * @param value — candidate value to inspect.
 * @returns `true` iff `value` matches the `GroupedListResponse<T>` envelope shape.
 */
export function isGroupedListResponse(value) {
    if (typeof value !== 'object' || value === null)
        return false;
    const v = value;
    return Array.isArray(v.groups) && typeof v.total === 'number';
}
//# sourceMappingURL=list.js.map