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