/**
 * Field-level control resolution with cascade inheritance
 *
 * Resolves which controls are enabled for a field using cascade priority:
 * field-level > parent-group > form-level > fallback
 *
 * This allows groups to set control defaults that propagate to children,
 * while still allowing individual fields to override.
 */
/**
 * Control enable settings at any level (field, group, form)
 */
export interface ControlEnableSettings {
    enable_lock?: boolean;
    enable_visibility_toggle?: boolean;
    enable_delete?: boolean;
    enable_data_ok?: boolean;
    enable_complete?: boolean;
    enable_skip?: boolean;
    enable_notes?: boolean;
    enable_chat?: boolean;
    enable_edit_fields?: boolean;
}
/**
 * Resolved control settings with all controls defined
 */
export interface ResolvedControlSettings {
    enable_lock: boolean;
    enable_visibility_toggle: boolean;
    enable_delete: boolean;
    enable_data_ok: boolean;
    enable_complete: boolean;
    enable_skip: boolean;
    enable_notes: boolean;
    enable_chat: boolean;
    enable_edit_fields: boolean;
}
/**
 * Resolve effective control settings for a field.
 *
 * Cascade priority: field-level > parent-group > form-level > false
 *
 * This allows groups to set control defaults that propagate to their children,
 * while still allowing individual fields to override.
 *
 * @param field - The field's control settings
 * @param parent_group - The parent group's control settings (if this field is inside a group)
 * @param form_level - Form-level control settings from component props
 * @returns Resolved settings with all controls having definite boolean values
 *
 * @example
 * ```ts
 * // Group with enable_lock=true
 * // Child field inherits enable_lock=true unless it explicitly sets enable_lock=false
 *
 * const field_settings: ControlEnableSettings = {};
 * const group_settings: ControlEnableSettings = { enable_lock: true, enable_notes: true };
 * const form_settings: ControlEnableSettings = { enable_data_ok: true };
 *
 * const resolved = resolve_field_controls(field_settings, group_settings, form_settings);
 * // => { enable_lock: true, enable_notes: true, enable_data_ok: true, ... }
 * ```
 */
export declare function resolve_field_controls(field: ControlEnableSettings | undefined, parent_group: ControlEnableSettings | null | undefined, form_level: ControlEnableSettings): ResolvedControlSettings;
/**
 * Convert resolved control settings to fallback visibility settings
 * for use with UnifiedFieldControls
 *
 * @param settings - Resolved control settings
 * @returns FallbackSettings compatible with UnifiedFieldControls
 */
export declare function controls_to_fallback_visibility(settings: ResolvedControlSettings): {
    data_ok: boolean;
    skip: boolean;
    notes: boolean;
    chat: boolean;
    visibility: boolean;
    lock: boolean;
    delete: boolean;
    add_elements: boolean;
};
//# sourceMappingURL=resolve_field_controls.d.ts.map