/**
 * Hooks for consuming FormViewContext
 *
 * Provides convenient access to form view state and utilities.
 */
import type { FieldMetadata, DataOkState } from '../shared/field_state/types.js';
import type { NoteEntry } from '../hazo_collab_form_base.js';
import type { ViewFieldConfig, ViewMode, ViewSection } from './types.js';
/**
 * Hook to get current view mode
 */
export declare function useViewMode(): ViewMode;
/**
 * Hook to get form data
 */
export declare function useFormData(): Record<string, unknown>;
/**
 * Hook to get field metadata
 */
export declare function useFieldMetadata(): Record<string, FieldMetadata>;
/**
 * Hook to get settings
 */
export declare function useViewSettings(): import("./types.js").ViewSettings;
/**
 * Hook to get callbacks
 */
export declare function useViewCallbacks(): import("./types.js").ViewCallbacks;
/**
 * Hook to check if a field should be rendered
 */
export declare function useShouldRenderField(): (field: ViewFieldConfig) => boolean;
/**
 * Hook to check if a group has any visible children.
 * Returns a callback (group: ViewFieldConfig) => boolean.
 * Authors always see groups; responders/non-visibility roles skip empty groups.
 */
export declare function useShouldRenderGroup(): (group: ViewFieldConfig) => boolean;
/**
 * Hook to check if a section has any visible groups.
 * Returns a callback (section: ViewSection) => boolean.
 * Authors always see sections; responders/non-visibility roles skip empty sections.
 */
export declare function useShouldRenderSection(): (section: ViewSection) => boolean;
/**
 * Hook to get a field's value
 */
export declare function useFieldValue(field_id: string): unknown;
/**
 * Hook to get a field's metadata
 */
export declare function useFieldMeta(field_id: string): FieldMetadata | undefined;
/**
 * Hook to check if a field is empty
 */
export declare function useIsFieldEmpty(field_id: string): boolean;
/**
 * Hook for field data_ok operations
 */
export declare function useFieldDataOk(field_id: string): {
    value: boolean | DataOkState | undefined;
    is_ok: boolean;
    is_pending: boolean;
    is_not_ok: boolean;
    set_data_ok: (new_value: boolean | DataOkState) => void;
    mode: "checkbox" | "multi_state";
    editable: boolean;
};
/**
 * Hook for field notes operations
 */
export declare function useFieldNotes(field_id: string): {
    notes: NoteEntry[];
    has_notes: boolean;
    set_notes: (new_notes: NoteEntry[]) => void;
    enabled: boolean;
};
/**
 * Hook for field visibility operations
 */
export declare function useFieldVisibility(field_id: string): {
    visibility: "hidden" | "visible";
    is_hidden: boolean;
    set_visibility: (new_visibility: "visible" | "hidden") => void;
    toggle_visibility: () => void;
    enabled: boolean;
    editable: boolean;
};
/**
 * Hook for field lock operations
 */
export declare function useFieldLock(field_id: string): {
    locked: boolean;
    set_locked: (new_locked: boolean) => void;
    toggle_lock: () => void;
    enabled: boolean;
    editable: boolean;
};
/**
 * Hook for approval mode statistics
 * Calculates approval progress for sections
 */
export declare function useApprovalStats(): {
    total_fields: number;
    approved_fields: number;
    pending_fields: number;
    not_ok_fields: number;
    progress_percent: number;
};
//# sourceMappingURL=use_form_view.d.ts.map