/**
 * Shared hook for building UnifiedFieldControls props.
 *
 * Summary view duplicates these 6 useMemo blocks identically in both
 * SummaryGroup and SummaryField. This hook consolidates them into one call.
 */
import type { ControlName } from '../../../types/icons_behaviour.js';
import type { ControlMetadata, ControlCallbacks, ControlConfig, FallbackSettings } from './types.js';
import type { FieldMetadataInput } from '../field_state/types.js';
/** Inputs for the hook */
export interface UseFieldControlPropsInput {
    /**
     * @deprecated Use `show_edit_icons` and `show_control_icons` instead.
     * When set, acts as fallback: `show_edit_icons ?? has_controls`, `show_control_icons ?? has_controls`.
     */
    has_controls: boolean;
    /** Override: false to force-hide edit icons (edit_field, edit_group, delete_field) */
    show_edit_icons?: boolean;
    /** Override: false to force-hide control icons (data_ok, skip, notes, chat, etc.) */
    show_control_icons?: boolean;
    /** Field ID */
    field_id: string;
    /** Field label (used in control_config) */
    field_label: string;
    /** Entity type: 'group' | 'field' */
    entity_type: 'group' | 'field';
    /** icons_behaviour from context */
    icons_behaviour: any;
    /** Active role from settings */
    active_role: string | undefined;
    /** Field metadata from context */
    metadata: FieldMetadataInput | undefined;
    /** Settings from context */
    settings: {
        data_ok_mode?: 'checkbox' | 'multi_state';
        data_ok_hidden_states?: any[];
        notes_panel_style?: any;
        notes_background_color?: string;
        notes_save_mode?: any;
        notes_mode?: 'controlled' | 'api';
        on_data_ok_hidden?: any;
        on_data_ok_protected?: any;
    };
    /** Chat config from context */
    chat_config: {
        group_id?: string;
        api_base_url?: string;
        timezone?: string;
        read_only?: boolean;
        log_polling?: boolean;
    } | undefined;
    /** Current user from context */
    current_user: any;
    /** Callbacks from context */
    callbacks: {
        on_data_ok_change?: (field_id: string, value: any) => void;
        on_notes_change?: (field_id: string, notes: any) => void;
        on_visibility_change?: (field_id: string, visibility: 'visible' | 'hidden') => void;
        on_lock_change?: (field_id: string, locked: boolean) => void;
        on_delete?: (field_id: string) => void;
        on_skip_change?: (field_id: string, skipped: boolean) => void;
        on_edit_elements?: (field_id: string, entity_type: 'field' | 'group') => void;
        on_revalidate?: (field_id: string, validation_rule_ids: string[]) => void;
    };
    /** Validation rule IDs for re-validate control */
    validation_rules?: string[];
}
/**
 * Build all props needed by UnifiedFieldControls for a field or group.
 */
export declare function use_field_control_props(input: UseFieldControlPropsInput): {
    role_controls: Record<ControlName, import("../../../types/icons_behaviour.js").RoleControlBehaviour>;
    fallback_visibility: FallbackSettings;
    fallback_enabled: FallbackSettings;
    control_metadata: ControlMetadata;
    control_callbacks: ControlCallbacks;
    control_config: ControlConfig;
};
//# sourceMappingURL=use_field_control_props.d.ts.map