import { EventEmitter } from '../../stencil-public-runtime';
import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
import { ResponseFormat } from './lime-query.types';
/**
 * Response Format Builder
 *
 * A focused component for editing Lime Query ResponseFormat in isolation.
 * Supports both visual and code modes for maximum flexibility.
 *
 * Use this component when you need to configure which properties to return
 * from a query, but don't need filter, limit, or other query parameters.
 *
 * **Features**:
 * - **Visual Mode**: Visual property selector with relation navigation
 * - **Code Mode**: JSON editor for ResponseFormat structure
 * - **Validation**: Ensures JSON is valid ResponseFormat (rejects other fields)
 * - **Mode Toggle**: Switch between visual and code modes seamlessly
 * - **Feature Flag**: Respects `useLimeQueryBuilderGuiMode` setting
 *
 * @example
 * ```tsx
 * <limebb-lime-query-response-format-builder
 *     platform={this.platform}
 *     context={this.context}
 *     limetype="deal"
 *     value={this.responseFormat}
 *     label="Select Properties to Return"
 *     onChange={this.handleChange}
 * />
 * ```
 *
 * @exampleComponent limebb-example-response-format-builder-basic
 * @private
 */
export declare class LimeQueryResponseFormatBuilder implements LimeWebComponent {
    /**
     * Platform service provider
     */
    platform: LimeWebComponentPlatform;
    /**
     * Component context
     */
    context: LimeWebComponentContext;
    /**
     * The limetype to configure response format for
     * This is fixed and not editable by the user
     */
    limetype: string;
    /**
     * Current response format value
     */
    value?: ResponseFormat;
    /**
     * Optional label for the builder
     */
    label: string;
    /**
     * Optional helper text for the builder
     */
    helperText: string;
    /**
     * Emitted when the response format changes
     */
    change: EventEmitter<ResponseFormat>;
    private limetypes;
    private mode;
    private codeValue;
    private internalValue;
    /**
     * Check if visual mode is enabled via feature flag
     */
    private get visualModeEnabled();
    componentWillLoad(): void;
    componentWillUpdate(): void;
    render(): any;
    private renderModeSwitch;
    private handleModeChange;
    private renderCodeEditor;
    private renderVisualMode;
    /**
     * Check if current value can be rendered in visual mode
     */
    private checkVisualModeSupport;
    /**
     * Update code value from internal state
     */
    private updateCodeValue;
    /**
     * Switch from code mode to visual mode
     */
    private switchToVisualMode;
    /**
     * Switch from visual mode to code mode
     */
    private switchToCode;
    /**
     * Handle code editor changes
     * @param event
     */
    private handleCodeChange;
    /**
     * Handle visual mode changes
     * @param event
     */
    private handleVisualModeChange;
}
//# sourceMappingURL=lime-query-response-format-builder.d.ts.map