import React from 'react';
import type { MarkdownInputFieldProps } from '../types/MarkdownInputFieldProps';
interface UseInputFieldGeometryParams {
    /** 是否处于放大态 */
    isEnlarged: boolean;
    /** 是否存在 toolsRender / actionsRender —— 决定底部是否独占一行，影响右内边距取舍 */
    hasTools?: boolean;
    /** 是否存在放大按钮（影响 minHeight 决策） */
    hasEnlargeAction: boolean;
    /** 是否存在 refinePrompt 按钮（影响 minHeight 决策） */
    hasRefineAction: boolean;
    /** 顶部 + 底部所有快捷/操作按钮总数（影响 minHeight 决策） */
    totalActionCount: number;
    /** 是否进入多行布局（影响 minHeight 决策） */
    isMultiRowLayout: boolean;
    /** 透传 props.maxHeight，用于折叠态高度计算 */
    maxHeight?: MarkdownInputFieldProps['maxHeight'];
    /** 透传 props.style，maxHeight/minHeight 优先级低于 maxHeight prop */
    style?: React.CSSProperties;
    /** 透传 props.attachment，启用附件时折叠态预留 90px */
    attachment?: {
        enable?: boolean;
    };
}
interface UseInputFieldGeometryReturn {
    /** 输入框最外层容器 ref，用于 ResizeObserver 监听宽度，触发 collapseSendActions */
    inputRef: React.RefObject<HTMLDivElement>;
    /** 容器宽度小于阈值时折叠发送区操作按钮 */
    collapseSendActions: boolean;
    /**
     * SendActions 宽度变化回调。直接传给 `<SendActions onResize={...} />`，
     * 内部会自动写入 rightPadding state，进而参与 computedRightPadding 计算。
     * 引用稳定（useCallback），不会引发下游不必要的 re-render。
     */
    onSendActionsResize: (width: number) => void;
    /**
     * QuickActions 宽度 + rightOffset 变化回调。直接传给 `<QuickActions onResize={...} />`，
     * 内部会同时写入 topRightPadding 与 quickRightOffset。
     * 引用稳定（useCallback），不会引发下游不必要的 re-render。
     */
    onQuickActionsResize: (width: number, rightOffset: number) => void;
    /** 编辑器 contentStyle.paddingRight 实际取值 */
    computedRightPadding: number;
    /** 折叠态下整个输入框的目标高度（含附件区预留） */
    collapsedHeightPx: number;
    /** 输入框最小高度，受放大态、按钮数量等影响 */
    computedMinHeight: number | string | undefined;
    /** 放大态下额外覆盖的内联样式 */
    enlargedStyle: React.CSSProperties;
}
/**
 * 输入框几何信息合并 Hook。
 *
 * 由 useMarkdownInputFieldLayout（容器尺寸 / 折叠状态 / setter）与
 * useMarkdownInputFieldStyles（基于上述状态计算的派生样式）合并而来。
 * 合并的目的是：消费侧只需关心一组最终值，避免主组件被迫充当中间胶水。
 */
export declare const useInputFieldGeometry: ({ isEnlarged, hasTools, hasEnlargeAction, hasRefineAction, totalActionCount, isMultiRowLayout, maxHeight, style, attachment, }: UseInputFieldGeometryParams) => UseInputFieldGeometryReturn;
export {};
