import type { PageSection } from '../../lib/page-editor-service.js';
import type { SectionSettings } from './section-types.js';
import { type SectionFieldDef } from './section-types.js';
interface SectionInspectorProps {
    section: PageSection;
    canEdit: boolean;
    onClose: () => void;
    onContentChange: (patch: Record<string, unknown>) => void;
    onSettingsChange: (patch: Partial<SectionSettings>) => void;
    onMetaChange: (patch: {
        name?: string;
        internalLabel?: string;
    }) => void;
    onToggleVisibility: () => void;
}
export declare function SectionInspector({ section, canEdit, onClose, onContentChange, onSettingsChange, onMetaChange, onToggleVisibility, }: SectionInspectorProps): import("react/jsx-runtime").JSX.Element;
/**
 * Companion content keys that hold an image field's intrinsic dimensions.
 * Picking from the media library persists width/height alongside the URL so the
 * public renderer can use the CLS-safe `next/image` path without waiting on
 * read-time `/resolve` enrichment. Mirrors the keys the section renderers read:
 *   `imageUrl` → `imageWidth` / `imageHeight`; `url` (gallery row) → `width` / `height`.
 */
export declare function companionDimensionKeys(fieldKey: string): {
    width: string;
    height: string;
};
type RowRecord = Record<string, unknown>;
/**
 * Derive a scannable one-line summary for a repeater row from its first two
 * short text values — e.g. a pricing row renders as "Pro · $79/mo" instead of
 * "Plan 2". Returns `null` when the row has no usable values yet, so the
 * caller falls back to the positional "Plan 2" label.
 */
export declare function repeaterRowSummary(fields: SectionFieldDef[], row: RowRecord): string | null;
export {};
//# sourceMappingURL=SectionInspector.d.ts.map