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<GlimmerProps, "shape" | "size"> {
    /**
     * Adjust the size of the `Glimmer.Header`.
     *
     * @default 3
     */
    readonly level?: 1 | 2 | 3 | 4 | 5;
}
export interface GlimmerTextProps extends Omit<GlimmerProps, "shape" | "size"> {
    /**
     * Set how many lines shows up.
     *
     * @default 3
     */
    readonly lines?: 1 | 2 | 3;
}
export interface GlimmerButtonProps extends Omit<GlimmerProps, "shape" | "size"> {
    /**
     * Allow `Glimmer.Button` to go full width.
     *
     * @default false
     */
    readonly fullWidth?: boolean;
}
export {};
