
import { IconButtonMatchButtonHeightConfig } from "./iconButtonMatchButtonHeight.js";

//#region ../automated-config/dist/utils/getButtonControlHeight.d.ts
//#region src/utils/getButtonControlHeight.d.ts
type ThemeFn = (path: string) => string;
/** Sizes where IconButton control height should match Button. */
declare const SHARED_BUTTON_ICONBUTTON_SIZES: Set<string>;
type ButtonControlSchema = IconButtonMatchButtonHeightConfig & {
  variables?: Record<string, Record<string, Record<string, {
    value?: unknown;
  }>>>;
};
declare function getButtonIconSizeVar({
  schema,
  iconLayerKey,
  state,
  theme
}: {
  schema: ButtonControlSchema;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): string | undefined;
/**
 * Button content box: max(icon size, text line-height).
 * Matches Figma auto-layout and keeps IconButton height aligned with Button.
 */
declare function getButtonControlContentSize({
  schema,
  rootLayerKey,
  iconLayerKey,
  state,
  theme
}: {
  schema: ButtonControlSchema;
  rootLayerKey: string;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): string | undefined;
/**
 * Button control height: vertical padding on both sides plus max(icon size, text line-height).
 */
declare function getButtonControlHeight({
  paddingVertical,
  schema,
  rootLayerKey,
  iconLayerKey,
  state,
  theme
}: {
  paddingVertical: string;
  schema: ButtonControlSchema;
  rootLayerKey: string;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): string | undefined;
/**
 * IconButton control height: uniform padding plus icon size only (no typography).
 */
declare function getIconButtonControlHeight({
  paddingVertical,
  schema,
  iconLayerKey,
  state,
  theme
}: {
  paddingVertical: string;
  schema: ButtonControlSchema;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): string | undefined;
/**
 * Layout line-height for button root: max(icon size, text line-height).
 */
declare function getButtonContentLineHeight({
  schema,
  rootLayerKey,
  iconLayerKey,
  state,
  theme
}: {
  schema: ButtonControlSchema;
  rootLayerKey: string;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): string;
declare function applyButtonControlHeightDeclarations({
  cssDeclarations,
  paddingVertical,
  schema,
  rootLayerKey,
  iconLayerKey,
  state,
  theme
}: {
  cssDeclarations: Record<string, string>;
  paddingVertical: string;
  schema: ButtonControlSchema;
  rootLayerKey?: string;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): void;
/**
 * IconButton height for xs–lg mirrors Button (padding + max(icon, line-height)).
 * xl uses icon-only height from IconButton tokens.
 */
declare function applyIconButtonControlHeightDeclarations({
  cssDeclarations,
  paddingVertical,
  iconButtonSchema,
  buttonHeightReferenceSchema,
  variantValue,
  iconLayerKey: _iconLayerKey,
  state,
  theme
}: {
  cssDeclarations: Record<string, string>;
  paddingVertical: string;
  iconButtonSchema: ButtonControlSchema;
  buttonHeightReferenceSchema?: ButtonControlSchema;
  variantValue: string;
  iconLayerKey: string;
  state: string;
  theme: ThemeFn;
}): void; //#endregion
//#endregion
export { type ButtonControlSchema, SHARED_BUTTON_ICONBUTTON_SIZES, applyButtonControlHeightDeclarations, applyIconButtonControlHeightDeclarations, getButtonContentLineHeight, getButtonControlContentSize, getButtonControlHeight, getButtonIconSizeVar, getIconButtonControlHeight };