/**
 * Type definitions for HazoEditGroupDialog component
 */
import type { NewFieldDefinition, AddFieldType, DialogComponents, ComboboxComponents } from '../hazo_add_field_dialog/types.js';
/**
 * Data for editing a group
 * Pre-populated with current group values
 */
export interface EditGroupData {
    /**
     * The group's unique identifier
     */
    id: string;
    /**
     * Current group label/name
     */
    label: string;
    /**
     * Existing fields in the group
     * Can be empty if the group has no fields yet
     */
    fields: NewFieldDefinition[];
    /**
     * Public file accept mode for this group
     */
    accept_public_files?: 'none' | 'ai_upload' | 'basic_upload';
    /**
     * Private file accept mode for this group
     */
    accept_private_files?: 'none' | 'basic_upload';
    /**
     * Permission string for private files (e.g., "admin")
     */
    private_files_permission?: string;
}
/**
 * The updated group data after editing
 * Same structure as EditGroupData
 */
export interface EditedGroupData extends EditGroupData {
}
/**
 * Props for the HazoEditGroupDialog component
 */
export interface HazoEditGroupDialogProps {
    /**
     * Whether the dialog is open
     */
    open: boolean;
    /**
     * Callback when the open state changes
     */
    on_open_change: (open: boolean) => void;
    /**
     * Current group data to edit
     */
    group_data: EditGroupData;
    /**
     * Callback when user confirms the edit
     * Returns the updated group data
     */
    on_confirm: (updated_group: EditedGroupData) => void;
    /**
     * Optional callback when user cancels
     */
    on_cancel?: () => void;
    /**
     * Optional callback when user deletes the group
     */
    on_delete?: () => void;
    /**
     * Optional custom title for the dialog
     * @default "Edit Group"
     */
    title?: string;
    /**
     * Optional field types to exclude from selection
     * Note: "Group" is always excluded to prevent nesting
     */
    exclude_types?: AddFieldType[];
    /**
     * shadcn/ui Dialog components - optional
     * Pass your app's Dialog, DialogContent, DialogHeader, etc.
     * If not provided, uses built-in dialog
     */
    dialog_components?: DialogComponents;
    /**
     * shadcn/ui Popover and Command components - optional
     * Pass your app's Popover, Command, etc. for the field type selector
     * If not provided, falls back to native select
     */
    combobox_components?: ComboboxComponents;
}
export type { NewFieldDefinition, AddFieldType, DialogComponents, ComboboxComponents };
//# sourceMappingURL=types.d.ts.map