import type { ExtractPropTypes, PropType } from 'vue';
import type { MaybeRef } from '@veno-ui/utils';
export declare const DENSITIES: readonly ["ultra-low", "low", "medium", "high", "ultra-high"];
export type Density = typeof DENSITIES[number];
export type DensityProps = ExtractPropTypes<ReturnType<typeof makeDensityProps>>;
export declare const makeDensityProps: <Defaults extends {
    density?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    density: unknown extends Defaults["density"] ? {
        type: PropType<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    } : Omit<{
        type: PropType<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["density"] ? "high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined : NonNullable<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined> | Defaults["density"]>;
        default: unknown extends Defaults["density"] ? "high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined : NonNullable<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined> | Defaults["density"];
    };
};
export declare function useDensity(props: MaybeRef<DensityProps>, name?: string): {
    densityClasses: import("vue").ComputedRef<string | null>;
};
