import type { BaseFieldConfig, FieldConfig } from '../../fields/types';
/**
 * Tab definition for TabGroupField
 */
export interface TabDefinition {
    /** Tab identifier (used in activeTabField value) */
    id: string;
    /** Display label for the tab */
    label: string;
    /** Optional icon name (lucide) - not yet implemented */
    icon?: string;
    /** Optional description shown at the top of tab content */
    description?: string;
    /** Fields to render in this tab */
    fields: FieldConfig[];
    /**
     * Optional SDK section option that controls tab visibility.
     * When set, the tab is only shown when the SDK sectionOptions[key] is not false.
     * If no SDK config is present, the tab is always visible.
     */
    sdkSectionOption?: 'backgroundColor' | 'backgroundGradient' | 'backgroundImage';
}
/**
 * TabGroupField configuration
 */
export interface TabGroupFieldConfig extends BaseFieldConfig {
    type: 'tabGroup';
    /** Tab definitions */
    tabs: TabDefinition[];
    /**
     * Optional: field ID that controls which tab is active
     * If not specified, tabs use internal state
     * If specified, the field value should match a tab.id
     */
    activeTabField?: string;
    ui?: {
        /** Hide the entire field */
        hidden?: boolean;
        /** Hide the field label */
        hideLabel?: boolean;
        /** Tab style variant (future enhancement) */
        tabStyle?: 'pills' | 'underline' | 'buttons';
        /** Tabs take full width */
        fullWidth?: boolean;
    };
}
