/**
 * Type definitions for HazoAddGroupDialog component
 */
import type { NewFieldDefinition, AddFieldType, DialogComponents, ComboboxComponents } from '../hazo_add_field_dialog/types.js';
/**
 * Definition for a new group to be added, including its fields
 */
export interface NewGroupDefinition {
    /**
     * The label/name for the group
     */
    group_name: string;
    /**
     * Fields to create inside the group
     * Can be empty if creating a group with no initial fields
     */
    fields: NewFieldDefinition[];
}
/**
 * Props for the HazoAddGroupDialog component
 */
export interface HazoAddGroupDialogProps {
    /**
     * Whether the dialog is open
     */
    open: boolean;
    /**
     * Callback when the open state changes
     */
    on_open_change: (open: boolean) => void;
    /**
     * Callback when user confirms the new group
     */
    on_confirm: (group: NewGroupDefinition) => void;
    /**
     * Optional callback when user cancels
     */
    on_cancel?: () => void;
    /**
     * Optional custom title for the dialog
     * @default "Add Group"
     */
    title?: string;
    /**
     * Optional default group name
     * @default ""
     */
    default_group_name?: 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;
    /**
     * Enable Library/Custom tabs for selecting pre-defined fields from the Field Library
     * When false (default), the dialog shows only the custom input (no tabs, no breaking change)
     * @default true
     */
    enable_library?: boolean;
    /**
     * API endpoint for the field library
     * @default '/api/hazo_connect/sqlite/data'
     */
    library_api_base_url?: string;
    /**
     * Database table name for the field library
     * @default 'hazo_collab_form_elts'
     */
    library_table_name?: string;
    /**
     * Scope ID for filtering library elements
     */
    library_scope_id?: string | null;
}
//# sourceMappingURL=types.d.ts.map