import type { ButtonHTMLAttributes, ForwardRefExoticComponent, ReactNode, RefAttributes, RefObject, } from "react"; import type { CreateLoaderButtonOptions, DesignInput, LoaderButtonTokens, LoaderDesign, LoaderInstance, MountLoaderOptions, } from "./index.js"; export type { DesignInput, LoaderDesign, LoaderInstance, LoaderButtonSize, LoaderButtonVariant, LoaderButtonTheme, LoaderButtonShape, LoaderIconPosition, LoaderButtonTokens, } from "./index.js"; export declare function useLoader( elementRef: RefObject, options: MountLoaderOptions, ): LoaderInstance | null; type OmittedButtonProps = "onClick" | "type" | "disabled" | "className" | "style" | "children"; export interface LoaderButtonProps extends Omit, OmittedButtonProps>, LoaderButtonTokens, Pick< CreateLoaderButtonOptions, | "label" | "idleLabel" | "loading" | "size" | "variant" | "theme" | "shape" | "iconPosition" | "type" | "tilt" | "sheen" | "rim" | "press" | "responsive" | "fullWidth" | "disabled" | "resetOnClick" | "resetOnLoading" | "replayDuration" | "ariaLabel" | "clock" | "fps" | "speed" | "phaseOffset" | "maxDpr" | "paused" | "pauseOffscreen" | "respectReducedMotion" | "releaseWebGLOffscreen" | "releaseDelay" | "rootMargin" | "threshold" | "onError" | "onFrame" > { design: DesignInput; /** Overrides `label` when provided. */ children?: ReactNode; className?: string; style?: Record; onClick?: ButtonHTMLAttributes["onClick"]; } export interface LoaderButtonHandle { readonly element: HTMLDivElement | null; readonly button: HTMLButtonElement | null; readonly slot: HTMLSpanElement | null; readonly loader: LoaderInstance | null; readonly design: LoaderDesign; reset(): void; play(): void; pause(): void; focus(options?: FocusOptions): void; blur(): void; } export declare const LoaderButton: ForwardRefExoticComponent< LoaderButtonProps & RefAttributes >; export default LoaderButton; export { mountLoader, createLoaderButton, designs, designsById, designIds, designsByKind, getDesign, resolveDesign, createClock, getSharedClock, } from "./index.js";