import { type SqlBool, type ExpressionBuilder, type ExpressionWrapper } from "kysely"; import type { LixDatabaseSchema } from "../database/schema.js"; import type { LixCommit } from "../commit/schema-definition.js"; /** * Filters commits that are descendants of the given commit. * * By default, this is **exclusive**, meaning it returns only commits strictly * *after* the provided commit in the graph. * * Traverses the `commit_edge` graph recursively, starting from the provided commit * (or its children if exclusive), and returns all commits reachable via child edges. * * This filter is useful for finding changes made *after* a specific point in time (e.g., a checkpoint). * * ⚠️ This filter only defines the traversal scope — it does not filter changes directly. * * --- Options --- * - `includeSelf`: If `true`, includes the starting `commit` in the results. Defaults to `false`. * - `depth`: Limits the traversal depth. `depth: 1` selects only immediate children (if exclusive) * or the starting node and its immediate children (if includeSelf is true). * * --- Examples --- * * @example Selecting strict descendants (default) * ```ts * db.selectFrom("commit") * .where(commitIsDescendantOf({ id: "c1" })) * .selectAll() * ``` * * @example Combining with commitIsAncestorOf to select commits between two points in time * ```ts * // Select all commits between startPoint and endPoint (inclusive) * db.selectFrom("commit") * .where(commitIsDescendantOf({ id: "startPoint" })) * .where(commitIsAncestorOf({ id: "endPoint" })) * .selectAll() * ``` */ export declare function commitIsDescendantOf(commit: Pick, options?: { depth?: number; includeSelf?: boolean; }): (eb: ExpressionBuilder) => ExpressionWrapper; //# sourceMappingURL=commit-is-descendant-of.d.ts.map