
import { ButtonSize, IconButtonSize } from "../../../types/dist/index.js";
import { IconButtonMatchButtonHeightConfig } from "./iconButtonMatchButtonHeight.js";

//#region ../automated-config/dist/utils/getButtonControlHeightPx.d.ts
//#region src/utils/getButtonControlHeightPx.d.ts
type ButtonControlHeightConfig = IconButtonMatchButtonHeightConfig & {
  button?: {
    variables?: Record<string, {
      spacingVertical?: {
        rest?: {
          value?: string;
        };
      };
      textVariant?: {
        rest?: {
          value?: string;
        };
      };
      size?: {
        rest?: {
          value?: string;
        };
      };
    }>;
  };
  iconButton?: {
    variables?: Record<string, {
      spacing?: {
        rest?: {
          value?: string;
        };
      };
      size?: {
        rest?: {
          value?: string;
        };
      };
    }>;
  };
  typography: Record<string, {
    fontSize: {
      base: number | {
        value: number;
      };
      breakpoints: Record<string, number | {
        value: number;
      }>;
    };
    lineHeight: {
      base: number | {
        value: number;
      };
      breakpoints: Record<string, number | {
        value: number;
      }>;
    };
  }>;
  scaleMode: {
    large: {
      spacing: Record<string, number>;
    };
  };
  globalDefaults: {
    breakpoint: string;
  };
};
/** Pixel control height for Button: padding + max(icon size, text line-height). */
declare function getButtonControlHeightPx(config: ButtonControlHeightConfig, size: ButtonSize): number;
/** Pixel control height for IconButton: uniform padding plus icon size only. */
declare function getIconButtonOnlyControlHeightPx(config: ButtonControlHeightConfig, size: IconButtonSize): number;
/** Pixel control height for IconButton when match-button-height is enabled for that size. */
declare function getIconButtonControlHeightPx(config: ButtonControlHeightConfig, size: IconButtonSize): number;
declare function syncButtonControlHeightVarForSize<T extends object>(config: T, size: ButtonSize): T;
declare function syncIconButtonControlHeightVarForSize<T extends object>(config: T, size: IconButtonSize): T;
declare function syncIconButtonOnlyControlHeightVarForSize<T extends object>(config: T, size: IconButtonSize): T; //#endregion
//#endregion
export { getButtonControlHeightPx, getIconButtonControlHeightPx, getIconButtonOnlyControlHeightPx, syncButtonControlHeightVarForSize, syncIconButtonControlHeightVarForSize, syncIconButtonOnlyControlHeightVarForSize };