import { EventEmitter } from '@angular/core';
import type { CuratedFormField, CuratedFormSchema } from '@memberjunction/interactive-component-types/forms';
import type { FormCanvasElement, FormCanvasModel, FormCanvasSection } from '../../services/form-canvas-model';
import * as i0 from "@angular/core";
/**
 * Right-panel inspector. Two modes:
 *
 * 1. **Palette mode** (default — no element selected): shows the curated
 *    fields for the active entity. Each row is a CDK drag source — drop
 *    onto a section to add a field element. Includes a search filter and a
 *    "bound" badge that mirrors which fields are already on the canvas.
 *
 * 2. **Inspector mode** (element selected): shows the selected element's
 *    properties (label override, helper text, required flag, span).
 *
 * The component is presentational — it emits events but doesn't mutate
 * canvas state. The dashboard owns the canvas and applies the updates.
 */
export declare class FormBuilderRightPanelComponent {
    private _schema;
    set Schema(value: CuratedFormSchema | null);
    get Schema(): CuratedFormSchema | null;
    private _canvas;
    set Canvas(value: FormCanvasModel | null);
    get Canvas(): FormCanvasModel | null;
    SelectedElementId: string | null;
    SelectedSectionId: string | null;
    /** Emitted when the user updates a property on the selected element. */
    ElementChanged: EventEmitter<FormCanvasElement>;
    /** Emitted when the user updates a property on the selected section. */
    SectionChanged: EventEmitter<FormCanvasSection>;
    /** Delete the currently-selected element. */
    ElementDeleted: EventEmitter<string>;
    /** Delete the currently-selected section. */
    SectionDeleted: EventEmitter<string>;
    /** Add a new element from the palette (drag fallback for non-DnD inputs). */
    FieldAdded: EventEmitter<{
        fieldName: string;
    }>;
    Search: string;
    private boundFieldNames;
    private readonly cdr;
    get filteredFields(): CuratedFormField[];
    get SelectedElement(): FormCanvasElement | null;
    get SelectedSection(): FormCanvasSection | null;
    get SelectedField(): CuratedFormField | null;
    isBound(fieldName: string): boolean;
    OnSearchInput(event: Event): void;
    OnElementLabelInput(event: Event): void;
    OnElementHelperInput(event: Event): void;
    OnElementRequiredChange(event: Event): void;
    OnElementSpanChange(event: Event): void;
    OnElementTextInput(event: Event): void;
    OnElementExpressionInput(event: Event): void;
    OnDeleteElement(): void;
    OnSectionTitleInput(event: Event): void;
    OnSectionColumnsChange(event: Event): void;
    OnSectionCollapsibleChange(event: Event): void;
    OnDeleteSection(): void;
    OnPaletteClick(field: CuratedFormField): void;
    private recomputeBoundFields;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormBuilderRightPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormBuilderRightPanelComponent, "mj-form-builder-right-panel", never, { "Schema": { "alias": "Schema"; "required": false; }; "Canvas": { "alias": "Canvas"; "required": false; }; "SelectedElementId": { "alias": "SelectedElementId"; "required": false; }; "SelectedSectionId": { "alias": "SelectedSectionId"; "required": false; }; }, { "ElementChanged": "ElementChanged"; "SectionChanged": "SectionChanged"; "ElementDeleted": "ElementDeleted"; "SectionDeleted": "SectionDeleted"; "FieldAdded": "FieldAdded"; }, never, never, false, never>;
}
//# sourceMappingURL=form-builder-right-panel.component.d.ts.map