import React, { type ReactNode } from "react";
import type { IndicatorProviderInfo, IndicatorData, IndicatorMap } from "./types";
export interface GutterContextValue {
    /** Array of provider IDs currently visible */
    visibleGutters: string[];
    /** Toggle a gutter on/off */
    toggleGutter: (providerId: string) => void;
    /** Set all visible gutters at once */
    setVisibleGutters: (ids: string[]) => void;
    /** All available providers from the backend */
    providers: IndicatorProviderInfo[];
    /** Indicator data map: { [itemId]: { [providerId]: IndicatorData } } */
    indicators: IndicatorMap;
    /** Whether indicators are loading */
    isLoading: boolean;
    /** Get indicator for a specific item and provider */
    getIndicator: (itemId: string, providerId: string) => IndicatorData | undefined;
    /** Trigger a full refresh of all indicator data (clears cache) */
    refresh: () => void;
    /** Invalidate and refresh indicators for a specific item */
    invalidateItem: (itemId: string) => void;
    /** Register a visible node (called by GutterColumns) */
    registerVisibleNode: (nodeId: string) => void;
    /** Available providers from backend */
    availableProviders: IndicatorProviderInfo[];
    /** Whether providers are still loading */
    providersLoading: boolean;
    /** Whether to show count badges on indicators */
    showBadges: boolean;
    /** Toggle showing count badges */
    toggleBadges: () => void;
    /** Whether content trees should render Sitecore display names */
    showDisplayNames: boolean;
    /** Toggle rendering Sitecore display names in content trees */
    toggleDisplayNames: () => void;
}
export interface GutterProviderProps {
    children: ReactNode;
    /** Initial item IDs to fetch indicators for */
    initialNodeIds?: string[];
    /** Default visible gutters (provider IDs) */
    defaultVisibleGutters?: string[];
    /** Language code */
    language?: string;
    /** Version number (actual resolved version, not 0) */
    version?: number;
}
export declare function GutterProvider({ children, initialNodeIds, defaultVisibleGutters, language, version, }: GutterProviderProps): React.JSX.Element;
export declare function useGutterContext(): GutterContextValue;
/**
 * Safe version that returns null if not in a provider.
 * Useful for optional gutter support.
 */
export declare function useGutterContextSafe(): GutterContextValue | null;
