import type { Tree, TreeGroupNode, TreeState } from "@charcuterie/logic"; import type { ReactNode } from "react"; import type { QueryBuilderLabels } from "./QueryBuilder.tsx"; export type QueryBuilderGroupProps = { combinatorOptions: readonly { label: string; value: Combinator; }[]; createLeafValue: () => Leaf; /** Root is `0`; nested groups deepen and gain the accent rail. */ depth: number; labels: Required; node: TreeGroupNode; renderCombinator?: (args: { nodeId: string; onChange: (combinator: Combinator) => void; options: readonly { label: string; value: Combinator; }[]; value: Combinator; }) => ReactNode; renderLeaf: (args: { nodeId: string; onChange: (value: Leaf) => void; value: Leaf; }) => ReactNode; state: TreeState; tree: Tree; }; /** * One match group: a "Match" combinator picker, its children (leaf * rows and nested groups), and a toolbar to add either. Its own file * because it renders itself recursively for nested groups and is * itself rendered inside the parent's `.map` — the member-file case. * * The picker is `QueryBuilderCombinator`, a `Listbox` rather than the * native `Select` this shipped with — see that file for why it is a * component and how it stays generic over an opaque `Combinator`. */ export declare const QueryBuilderGroup: ({ combinatorOptions, createLeafValue, depth, labels, node, renderCombinator, renderLeaf, state, tree, }: QueryBuilderGroupProps) => ReactNode; //# sourceMappingURL=QueryBuilderGroup.d.ts.map