/**
 * Type definitions for HazoEditFieldDialog component
 */
import type { AddFieldType, FieldOption, DateConfig, CheckboxConfig, DialogComponents, ComboboxComponents } from '../hazo_add_field_dialog/types.js';
export type { AddFieldType, FieldOption, DateConfig, CheckboxConfig, DialogComponents, ComboboxComponents };
/**
 * Data for editing a field
 * Pre-populated with current field values
 */
export interface EditFieldData {
    /**
     * The field's unique identifier
     */
    id: string;
    /**
     * Current label/question text
     */
    label: string;
    /**
     * Current field type
     */
    field_type: AddFieldType;
    /**
     * Whether the field is required
     */
    required?: boolean;
    /**
     * Options for Radio/Combo fields
     */
    options?: FieldOption[];
    /**
     * Date-specific configuration
     */
    date_config?: DateConfig;
    /**
     * Checkbox-specific configuration
     */
    checkbox_config?: CheckboxConfig;
    /**
     * Optional description
     */
    description?: string;
    /**
     * Public file accept mode for this field
     */
    accept_public_files?: 'none' | 'ai_upload' | 'basic_upload';
    /**
     * Private file accept mode for this field
     */
    accept_private_files?: 'none' | 'basic_upload';
    /**
     * Permission string for private files (e.g., "admin")
     */
    private_files_permission?: string;
}
/**
 * Props for the HazoEditFieldDialog component
 */
export interface HazoEditFieldDialogProps {
    /**
     * Whether the dialog is open
     */
    open: boolean;
    /**
     * Callback when the open state changes
     */
    on_open_change: (open: boolean) => void;
    /**
     * Current field data to edit
     */
    field_data: EditFieldData;
    /**
     * Callback when user confirms the edit
     * Returns the updated field data
     */
    on_confirm: (updated_field: EditFieldData) => void;
    /**
     * Optional callback when user cancels
     */
    on_cancel?: () => void;
    /**
     * Optional callback when user deletes the field
     */
    on_delete?: () => void;
    /**
     * Optional custom title for the dialog
     * @default "Edit Field"
     */
    title?: string;
    /**
     * Optional field types to exclude from selection
     * By default excludes DataTable and Group
     */
    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;
}
//# sourceMappingURL=types.d.ts.map