import { LitElement } from 'lit'; import type { RuleType, QueryField, QueryBuilderSize } from './defs/types'; import '../dropdown'; import '../textInput'; import '../numberInput'; import '../datePicker'; import '../timepicker'; import '../toggleButton'; import '../button'; import '../radioButton'; import '../sliderInput'; /** * Query Builder Rule component. * Represents a single condition in the query (field + operator + value). * * @fires on-rule-change - Emits when the rule changes. `detail: { rule: RuleType }` * @fires on-rule-remove - Emits when the rule should be removed. `detail: { ruleId: string }` * @fires on-rule-add - Emits when a new rule should be added after this one. `detail: { ruleId: string }` * @fires on-rule-clone - Emits when the rule should be cloned. `detail: { ruleId: string }` * @fires on-rule-lock - Emits when the rule lock state changes. `detail: { ruleId: string, disabled: boolean }` */ export declare class QueryBuilderRule extends LitElement { static styles: import("lit").CSSResult; /** The rule data */ accessor rule: RuleType; /** Available fields */ accessor fields: QueryField[]; /** Whether this is the last rule in the group (shows add button) */ accessor isLast: boolean; /** Whether to show the clone button */ accessor showCloneButton: boolean; /** Whether to show the lock button */ accessor showLockButton: boolean; /** Whether drag and drop is disabled */ accessor disableDragAndDrop: boolean; /** Whether the rule is disabled/locked */ accessor disabled: boolean; /** Index of this rule in its parent group (for drag-and-drop) */ accessor index: number; /** Path to the parent group (for drag-and-drop) */ accessor parentPath: number[]; /** Number of siblings at this level (used to determine if drag handle should show at depth 1) */ accessor siblingCount: number; /** Text strings for i18n */ accessor textStrings: Record; /** Size of child components */ accessor size: QueryBuilderSize; /** Minimum number of dropdown options before search is shown. */ accessor searchThreshold: number; /** Get the currently selected field configuration */ private get selectedField(); /** Get operators for the current field */ private get operators(); /** Check if current operator requires no value */ private get isNoValue(); /** Check if current operator requires two values */ private get isBetween(); /** Check if current operator accepts multiple values */ private get isMultiValue(); render(): import("lit-html").TemplateResult<1>; private _renderDragHandle; private _handleDragStart; private _handleDragEnd; private _renderFieldSelector; private _renderOperatorSelector; private _renderValueEditor; private _renderTextInput; private _renderNumberInput; private _renderDateInput; private _renderDateTimeInput; private _renderTimeInput; private _renderBooleanInput; private _renderRadioInput; private _renderSliderInput; private _renderSelectInput; private _renderMultiSelectEditor; private _renderBetweenEditor; private _renderActions; private _handleFieldChange; private _handleOperatorChange; private _handleValueChange; private _handleBooleanChange; private _handleRadioChange; private _handleSliderChange; private _handleMultiValueChange; private _handleBetweenChange; private _emitRuleChange; /** validate the current rule using native validation and field's validator function */ private _validateRule; /** handle blur events on value inputs to trigger validation */ private _handleValueBlur; private _getDetailValue; private _handleAddRule; private _handleRemoveRule; private _handleCloneRule; private _handleLockToggle; } declare global { interface HTMLElementTagNameMap { 'kyn-qb-rule': QueryBuilderRule; } } //# sourceMappingURL=queryBuilderRule.d.ts.map