import { createConsentManager, ConsentCategories, ConsentConfig, CategoryInfo } from '../../consent/index';
export type { ConsentCategories, ConsentConfig, CategoryInfo };
type ConsentManager = ReturnType<typeof createConsentManager>;
export interface UseConsentResult {
    /** The underlying consent manager instance. */
    manager: ConsentManager;
    /** Current stored consent categories snapshot (null when not yet set). */
    preferences: ConsentCategories | null;
    /**
     * Update a single category.
     * Persists to localStorage (via `setStoredConsent`) and re-renders.
     */
    setCategory: (category: keyof ConsentCategories, value: boolean) => void;
    /** Accept all optional categories and persist. */
    acceptAll: () => void;
    /** Reject all optional categories (keep essential) and persist. */
    rejectAll: () => void;
    /** Fetch the server-side list of consent categories. */
    fetchCategories: () => Promise<CategoryInfo[]>;
    /** Persist current preferences to the server. */
    saveConsent: (categories: ConsentCategories, method?: string) => Promise<boolean>;
}
/**
 * @param config - Optional ConsentConfig.  When omitted the module-level
 *   default manager is used.  Pass an explicit config for an isolated instance.
 */
export declare function useConsent(config?: ConsentConfig): UseConsentResult;
//# sourceMappingURL=useConsent.d.ts.map