/**
 * Reusable styled sub-components for editor panels
 */
import React from 'react';
import { TAB_ICONS } from './icons.js';
interface EditorSectionProps {
    children: React.ReactNode;
    className?: string;
    /** Omit the bottom divider (for the last section in a group) */
    last?: boolean;
}
/** Wraps a field area with padding and a bottom divider line */
export declare function EditorSection({ children, className, last }: EditorSectionProps): import("react/jsx-runtime").JSX.Element;
interface EditorLabelProps {
    children: React.ReactNode;
    icon?: React.ComponentType<{
        className?: string;
    }>;
    required?: boolean;
    className?: string;
    htmlFor?: string;
}
export declare function EditorLabel({ children, icon: Icon, required, className, htmlFor }: EditorLabelProps): import("react/jsx-runtime").JSX.Element;
interface EditorInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
    /** Override theme width */
    field_width?: 'full' | 'lg' | 'md';
}
export declare const EditorInput: React.ForwardRefExoticComponent<EditorInputProps & React.RefAttributes<HTMLInputElement>>;
interface EditorTextAreaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
    field_width?: 'full' | 'lg' | 'md';
}
export declare const EditorTextArea: React.ForwardRefExoticComponent<EditorTextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
interface EditorSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
    field_width?: 'full' | 'lg' | 'md';
}
export declare const EditorSelect: React.ForwardRefExoticComponent<EditorSelectProps & React.RefAttributes<HTMLSelectElement>>;
interface EditorTabItem {
    id: string;
    label: string;
    icon?: keyof typeof TAB_ICONS;
}
interface EditorTabsProps {
    tabs: EditorTabItem[];
    active_tab: string;
    on_tab_change: (tab: string) => void;
    className?: string;
}
export declare function EditorTabs({ tabs, active_tab, on_tab_change, className }: EditorTabsProps): import("react/jsx-runtime").JSX.Element;
interface EditorHeaderProps {
    children: React.ReactNode;
    className?: string;
}
export declare function EditorHeader({ children, className }: EditorHeaderProps): import("react/jsx-runtime").JSX.Element;
interface SwitchCardProps {
    icon?: React.ComponentType<{
        className?: string;
    }>;
    label: string;
    description?: string;
    children: React.ReactNode;
    className?: string;
}
export declare function SwitchCard({ icon: Icon, label, description, children, className }: SwitchCardProps): import("react/jsx-runtime").JSX.Element;
interface StatusIndicatorProps {
    saved: boolean;
    className?: string;
}
export declare function StatusIndicator({ saved, className }: StatusIndicatorProps): import("react/jsx-runtime").JSX.Element;
interface EditorHelpTextProps {
    children: React.ReactNode;
    className?: string;
}
export declare function EditorHelpText({ children, className }: EditorHelpTextProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=components.d.ts.map