import { type HTMLAttributes } from 'react';
import { type VariantProps } from 'class-variance-authority';
declare const skeletonVariants: (props?: ({
variant?: "text" | "rounded" | "rectangular" | "circular" | null | undefined;
size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/**
* Put this on the REAL content that replaces a skeleton, so it settles in
* instead of snapping. Opacity only; none under reduced motion, and none in
* the accessible theme, whose `--animation-duration` is 0ms.
*/
export declare const CONTENT_ENTER_CLASS = "ds:animate-[content-enter_var(--animation-duration)_var(--ease-out)] ds:motion-reduce:animate-none";
export interface SkeletonProps extends Omit, 'aria-hidden' | 'style'>, VariantProps {
variant?: 'text' | 'circular' | 'rectangular' | 'rounded';
size?: 'sm' | 'md' | 'lg';
/** Number of stacked text lines — only applies when variant='text' */
lines?: number;
/**
* Width override — accepts any CSS value.
* Exception to constraint §4: skeleton dimensions are consumer-specified
* and cannot be expressed as static Tailwind classes.
*/
width?: string;
/**
* Height override — accepts any CSS value.
* Exception to constraint §4: skeleton dimensions are consumer-specified
* and cannot be expressed as static Tailwind classes.
*/
height?: string;
/** Whether to animate the pulse */
animate?: boolean;
/**
* Position in a wave. Atoms with rising steps (0, 1, 2…) pulse one after
* another instead of all at once. With `lines`, each line takes the next
* step by itself. Omit and nothing is staggered, as before.
*/
stagger?: number;
}
export type SkeletonPreset = 'figure' | 'line-chart' | 'bar-chart' | 'table' | 'heatmap' | 'list';
export interface SkeletonPresetProps extends Omit, 'aria-hidden' | 'style' | 'children' | 'tabIndex'> {
/**
* Pulse the shapes. Defaults to true. There is never a pulse under
* reduced motion, in forced colours, or in the accessible themes,
* whatever this says.
*/
animate?: boolean;
}
export interface SkeletonBarChartProps extends SkeletonPresetProps {
/** Number of bars, 2 to 12. Defaults to 6. */
bars?: number;
}
export interface SkeletonTableProps extends SkeletonPresetProps {
/** Body rows under the header, 1 to 20. Defaults to 4. */
rows?: number;
/** Columns, 1 to 8. Defaults to 3. */
columns?: number;
}
export interface SkeletonHeatmapProps extends SkeletonPresetProps {
/** Rows, 1 to 12. Defaults to 5. */
rows?: number;
/** Columns, 1 to 12. Defaults to 7, one week. */
columns?: number;
}
export interface SkeletonListProps extends SkeletonPresetProps {
/** Items, 1 to 10. Defaults to 3. */
items?: number;
}
/**
* Placeholder shapes. `` is one atom (a line, a circle, a
* block); the members are presets shaped like a whole widget.
*/
export declare const Skeleton: import("react").ForwardRefExoticComponent> & {
Figure: import("react").ForwardRefExoticComponent>;
LineChart: import("react").ForwardRefExoticComponent>;
BarChart: import("react").ForwardRefExoticComponent>;
Table: import("react").ForwardRefExoticComponent>;
Heatmap: import("react").ForwardRefExoticComponent>;
List: import("react").ForwardRefExoticComponent>;
};
export {};
//# sourceMappingURL=skeleton.d.ts.map