import { type CSSProperties, type Ref, type RefCallback } from "react";
import { type FormTheme } from "./types.js";
/**
 * @since 6.0.0
 */
export interface TextFieldContainerAddonsOptions {
    /**
     * This style will automatically be merged with the returned `style`.
     */
    style?: CSSProperties;
    /** @defaultValue `getFormConfig("theme")` */
    theme?: FormTheme;
    /**
     * Set this to `true` if the `leftAddon` should be watched for size changes.
     */
    leftAddon: boolean;
    /**
     * An optional ref that will be merged with the returned
     * {@link TextFieldContainerAddonsImplementation.leftAddonRef}.
     */
    leftAddonRef?: Ref<HTMLSpanElement>;
    /**
     * This can be used to update the CSS `calc()` expression to change the
     * padding.
     *
     * @example Add an additional 0.25rem padding
     * ```
     * leftAddonExtraCalc="+ 0.25rem"
     * ```
     *
     * @defaultValue `""`
     */
    leftAddonExtraCalc?: string;
    /**
     * Set this to `true` if the `rightAddon` should be watched for size changes.
     */
    rightAddon: boolean;
    /**
     * An optional ref that will be merged with the returned
     * {@link TextFieldContainerAddonsImplementation.rightAddonRef}.
     */
    rightAddonRef?: Ref<HTMLSpanElement>;
    /**
     * This can be used to update the CSS `calc()` expression to change the
     * padding.
     *
     * @example Add an additional 0.25rem padding
     * ```
     * leftAddonExtraCalc="+ 0.25rem"
     * ```
     *
     * @defaultValue `""`
     */
    rightAddonExtraCalc?: string;
}
/**
 * @since 6.0.0
 */
export interface TextFieldContainerAddonsImplementation {
    style?: CSSProperties;
    leftAddonRef: RefCallback<HTMLSpanElement>;
    rightAddonRef: RefCallback<HTMLSpanElement>;
}
/**
 * This hook can be used to automatically update the padding on the
 * `TextFieldContainer` based on the size of the `leftAddon` and `rightAddon`.
 *
 * @example Simple Example
 * ```tsx
 * const { style, leftAddonRef, rightAddonRef } = useTextFieldContainerAddons({
 *   leftAddon: true,
 *   rightAddon: true,
 * });
 *
 * return (
 *   <TextField
 *     style={style}
 *     leftAddon={<SomeDynamicAddon />}
 *     leftAddonProps={{ ref: leftAddonRef }}
 *     rightAddon={<SomeDynamicAddon />}
 *     rightAddonProps={{ ref: rightAddonRef }}
 *   />
 * );
 * ```
 *
 * @since 6.0.0
 */
export declare function useTextFieldContainerAddons(options: TextFieldContainerAddonsOptions): TextFieldContainerAddonsImplementation;
