import { type ButtonHTMLAttributes } from 'react';
import type { LucideIcon } from '../Icon/index.js';
import { type VariantProps } from '../tvShim.js';
declare const iconButton: import("tailwind-variants").TVReturnType<{
tone: {
default: string;
danger: string;
muted: string;
};
size: {
sm: string;
md: string;
};
}, undefined, string, TVConfig, {
tone: {
default: string;
danger: string;
muted: string;
};
size: {
sm: string;
md: string;
};
}, undefined, import("tailwind-variants").TVReturnType<{
tone: {
default: string;
danger: string;
muted: string;
};
size: {
sm: string;
md: string;
};
}, undefined, string, TVConfig, unknown, unknown, undefined>>;
type IconButtonVariants = VariantProps;
export type IconButtonProps = Omit, 'children' | 'aria-label'> & IconButtonVariants & {
readonly icon: LucideIcon;
/** Required accessible name (visible label is icon-only). */
readonly 'aria-label': string;
};
/**
* CMP-0018 IconButton — icon-only control with required `aria-label`.
* Glyphs must come from the shared Lucide map (`pi-kiosk-shared/ui`), not app `lucide-react` imports.
*/
export declare const IconButton: import("react").ForwardRefExoticComponent, "children" | "aria-label"> & IconButtonVariants & {
readonly icon: LucideIcon;
/** Required accessible name (visible label is icon-only). */
readonly 'aria-label': string;
} & import("react").RefAttributes>;
export {};
//# sourceMappingURL=IconButton.d.ts.map