import { EventEmitter } from '../../../stencil-public-runtime';
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
import { ResponseFormat } from '../lime-query.types';
/**
 * Response Format Editor Component
 *
 * Allows users to select which properties should be returned in the query response.
 * Supports selecting properties on both the main limetype and related limetypes
 * through belongsto relations.
 *
 * Features:
 * - **Property selection**: Choose properties using dropdown navigation
 * - **Nested properties**: Select properties on related objects (e.g., company.name)
 * - **Property aliases**: Optionally rename properties in the response
 * - **Dynamic list**: Add/remove property selections
 * - **Real-time updates**: Changes immediately update the responseFormat
 *
 * The component generates a `ResponseFormat` object with the `object` field
 * containing the selected properties.
 *
 * @private
 */
export declare class ResponseFormatEditor implements LimeWebComponent {
    /**
     * Platform service provider
     */
    platform: LimeWebComponentPlatform;
    /**
     * Component context
     */
    context: LimeWebComponentContext;
    /**
     * The limetype to select properties from
     */
    limetype: string;
    /**
     * Current response format
     */
    value: ResponseFormat;
    /**
     * Optional label
     */
    label: string;
    private items;
    /**
     * Emitted when the response format changes
     */
    change: EventEmitter<ResponseFormat>;
    componentWillLoad(): void;
    componentWillUpdate(): void;
    render(): any;
    private renderPropertyCount;
    private renderItem;
    private handleItemChange;
    private handleAddProperty;
    private emitChange;
    /**
     * Check if the response format is empty
     *
     * A response format is considered empty in the following cases:
     * - Empty object: `{}`
     * - Object with empty object property and no aggregates: `{ object: {} }`
     *
     * Returns false for:
     * - `null` or `undefined`
     * - Objects with properties: `{ object: { _id: null } }`
     * - Objects with aggregates: `{ aggregates: {...} }`
     *
     * @param value - The ResponseFormat to check
     * @returns True if the response format is empty, false otherwise
     */
    private isEmptyResponseFormat;
}
//# sourceMappingURL=response-format-editor.d.ts.map