import type { ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import type { ResizableProps } from './useResizable';
type PillPlacement = 'start' | 'end' | 'center' | 'auto';
export interface ResizeHandleProps extends Omit<BaseProps<HTMLDivElement>, 'style'> {
    ref?: React.Ref<HTMLDivElement>;
    /**
     * Layout direction — determines cursor and indicator orientation.
     * @default 'horizontal'
     */
    direction?: 'horizontal' | 'vertical';
    /**
     * Positioning mode. `'inline'` (default) puts the handle in normal
     * flex flow between siblings. `'overlay'` uses absolute positioning
     * so the handle sits inside a parent panel's bounds — useful when
     * the parent has `overflow: clip`.
     * @default 'inline'
     */
    position?: 'inline' | 'overlay';
    /**
    /**
     * Reverse the drag direction. Use when the handle controls a panel
     * on the end/right/bottom side.
     * @default false
     */
    isReversed?: boolean;
    /**
     * Whether the handle is disabled (not interactive).
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Show a 1px divider line. The line IS the handle — it takes only
     * 1px in the layout with a wider invisible hit area for interaction.
     * Ignored in overlay mode.
     * @default false
     */
    hasDivider?: boolean;
    /**
     * Show the pill grip indicator at rest. Set to `false` to only
     * reveal the pill on hover/focus.
     * @default true
     */
    isAlwaysVisible?: boolean;
    /**
     * Which side of the divider line the pill sits on.
     * - `'auto'` — panel side by default, flips when panel is collapsed to 0px
     * - `'start'` — left (horizontal) or top (vertical)
     * - `'end'` — right (horizontal) or bottom (vertical)
     * - `'center'` — centered on the divider line (original behavior)
     * @default 'auto'
     */
    pillPlacement?: PillPlacement;
    /**
     * Accessible label for the separator.
     * @default 'Resize handle'
     */
    label?: string;
    /** Resize props from useResizable region. */
    resizable?: ResizableProps;
    /** Custom handle content. Overrides the default pill. */
    children?: ReactNode;
}
/**
 * Draggable resize handle placed between resizable panels. Renders as a thin
 * divider line with a wider invisible hit area and optional pill grip indicator.
 * Supports keyboard resizing via arrow keys and WAI-ARIA separator role.
 *
 * The pill element uses class `astryx-resize-handle-pill` for theme targeting.
 *
 * @example
 * ```
 * <ResizeHandle
 *   resizable={sidebar.props}
 *   direction="horizontal"
 *   hasDivider />
 * ```
 */
export declare function ResizeHandle({ direction, position: positionMode, isReversed, isDisabled, hasDivider, isAlwaysVisible, pillPlacement, label: labelFromProps, resizable, children, xstyle, className, ref, ...props }: ResizeHandleProps): import("react").JSX.Element;
export declare namespace ResizeHandle {
    var displayName: string;
}
export {};
//# sourceMappingURL=ResizeHandle.d.ts.map