import { EventEmitter } from '../../stencil-public-runtime';
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
import { LimeQuery } from './lime-query.types';
/**
 * Lime Query Builder Component
 *
 * A comprehensive query builder for constructing Lime Query DSL queries.
 * This is the main component that combines limetype selection with the filter builder.
 *
 * Features:
 * - **Limetype selection**: Choose which object type to query
 * - **Filter builder**: Build complex filters with AND/OR/NOT logic
 * - **Property path selection**: Navigate through relations
 * - **Type-aware inputs**: Automatic input types based on property type
 * - **Response format**: Select which properties to return
 * - **Query options**: Configure limit and other query parameters
 * - **Placeholder support**: Use `%activeObject%` placeholders in filter values
 * - **Real-time output**: See the Lime Query JSON as you build
 *
 * The component produces a complete `LimeQuery` object that can be sent
 * directly to the Lime CRM backend.
 *
 * **Active Object Placeholders**:
 * When the `activeLimetype` prop is provided, the component enables validation
 * and UI support for `%activeObject%` placeholders in filter expressions.
 * These placeholders reference properties of a contextual "active object"
 * (e.g., `%activeObject%.company` references the company of the active object).
 *
 * @exampleComponent limebb-example-lime-query-builder-basic
 * @exampleComponent limebb-example-lime-query-builder-with-active-limetype
 * @private
 */
export declare class LimeQueryBuilder implements LimeWebComponent {
    /**
     * Platform service provider
     */
    platform: LimeWebComponentPlatform;
    /**
     * Component context
     */
    context: LimeWebComponentContext;
    /**
     * The complete Lime Query object
     */
    value: LimeQuery;
    /**
     * Optional label for the Lime Query builder
     */
    label: string;
    /**
     * The limetype of the active object (for %activeObject% placeholder validation).
     * When provided, enables placeholder validation and the placeholder input mode.
     * When omitted, placeholders are accepted without validation.
     */
    activeLimetype?: string;
    /**
     * Emitted when the Lime Query changes
     */
    change: EventEmitter<LimeQuery>;
    private limetypes;
    private mode;
    private codeValue;
    private limetype;
    private filter;
    private internalResponseFormat?;
    private limit?;
    private orderBy?;
    private description?;
    private getButtons;
    private get visualModeEnabled();
    componentWillLoad(): void;
    render(): any;
    private renderContent;
    private handleLimetypeChange;
    private handleFilterChange;
    private handleResponseFormatChange;
    private handleLimitChange;
    private handleOrderByChange;
    private handleDescriptionChange;
    private handleDescriptionBlur;
    private emitChange;
    private updateCodeValue;
    private buildLimeQuery;
    private checkVisualModeSupport;
    private renderModeSwitch;
    private renderCodeEditor;
    private renderLimetypeSection;
    private renderDescriptionSection;
    private renderResponseFormatSection;
    private renderFilterSection;
    private renderQueryOptionsSection;
    private renderVisualMode;
    private renderHeader;
    private renderModeControls;
    private renderCodeMode;
    private handleChange;
    private handleCodeChange;
}
//# sourceMappingURL=lime-query-builder.d.ts.map