import React from "react"; import sizes from "./style/Sizes.module.css"; import shapes from "./style/Shape.module.css"; import timings from "./style/Timing.module.css"; export type Sizes = keyof typeof sizes; export type Shapes = keyof typeof shapes; export type Timings = keyof typeof timings; interface GlimmerProps { /** * Sets the size of the glimmer. * * If you use `"auto"` with a `"rectangle"` shape, it will fill the * size of the parents width and height. With how CSS works, if it can't * determine the parents width and height, it'll default to `base`. */ readonly size?: Sizes; /** * Sets the shape of the glimmer. * * If you need a specific width, use the `width` prop. */ readonly shape?: Shapes; /** * Control how fast the shine moves from left to right. This is useful when * the glimmer is used on smaller spaces. */ readonly timing?: Timings; /** * Use on surfaces with dark backgrounds. */ readonly reverseTheme?: boolean; /** * Adjust the width of the glimmer in px values. */ readonly width?: number; } export declare const GLIMMER_TEST_ID = "ATL-Glimmer"; export declare const GLIMMER_HEADER_TEST_ID = "ATL-GlimmerHeader"; export declare const GLIMMER_TEXT_TEST_ID = "ATL-GlimmerText"; export declare const GLIMMER_BUTTON_TEST_ID = "ATL-GlimmerButton"; export declare function Glimmer({ size, shape, timing, reverseTheme, width, }: GlimmerProps): React.JSX.Element; export declare namespace Glimmer { var Header: ({ level, ...props }: GlimmerHeaderProps) => React.JSX.Element; var Text: ({ width, lines, ...props }: GlimmerTextProps) => React.JSX.Element; var Button: ({ fullWidth, ...props }: GlimmerButtonProps) => React.JSX.Element; } export interface GlimmerHeaderProps extends Omit { /** * Adjust the size of the `Glimmer.Header`. * * @default 3 */ readonly level?: 1 | 2 | 3 | 4 | 5; } export interface GlimmerTextProps extends Omit { /** * Set how many lines shows up. * * @default 3 */ readonly lines?: 1 | 2 | 3; } export interface GlimmerButtonProps extends Omit { /** * Allow `Glimmer.Button` to go full width. * * @default false */ readonly fullWidth?: boolean; } export {};