import { ReactNode } from 'react';
export type Density = "compact" | "comfortable" | "spacious";
type DensityContextValue = {
    density: Density;
    setDensity: (next: Density) => void;
};
export type DensityProviderProps = {
    children: ReactNode;
    defaultDensity?: Density;
    storageKey?: string;
};
export declare function DensityProvider({ children, defaultDensity, storageKey, }: DensityProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useDensity(): DensityContextValue;
/**
 * Non-throwing density read. Returns the context value if a `<DensityProvider>`
 * is mounted, otherwise reads the current `data-density` attribute on
 * `<html>`, falling back to `comfortable`. Use inside leaf components that
 * should respect density without requiring their host to mount a provider.
 */
export declare function useDensityValue(): Density;
export {};
//# sourceMappingURL=use-density.d.ts.map