import { BoxProps, Factory, StylesApiProps } from '@mantine/core';
import React from 'react';
import { SplitDynamic } from './Dynamic';
import { SplitPane } from './Pane/SplitPane';
import { SplitResizer, type SplitResizerContextProps, type SplitResizerVariant } from './Resizer/SplitResizer';
export type SplitStylesNames = 'root';
/** Variant type for `Split`, mirrors `SplitResizerVariant` */
export type SplitVariant = SplitResizerVariant;
export type SplitCssVariables = {
    root: '--split-inline';
};
/**
 * Base props for the `Split` container. Extends `SplitResizerContextProps` so
 * that resizer configuration (variant, color, knob, etc.) set on `<Split>` is
 * automatically cascaded to all child `<Split.Resizer>` components via context.
 */
export interface SplitBaseProps extends SplitResizerContextProps {
    /** Render the split container as `inline-flex` instead of `flex` */
    inline?: boolean;
    /**
     * When `true`, `Split.Resizer` components are automatically inserted between
     * consecutive `Split.Pane` children, removing the need to add them manually.
     * Auto-inserted resizers inherit all resizer props from the parent `Split`.
     */
    autoResizers?: boolean;
    /** Split children — typically `Split.Pane` and `Split.Resizer` elements */
    children: React.ReactNode;
}
export interface SplitProps extends BoxProps, SplitBaseProps, StylesApiProps<SplitFactory> {
}
export type SplitFactory = Factory<{
    props: SplitProps;
    defaultComponent: 'div';
    ref: HTMLDivElement;
    stylesNames: SplitStylesNames;
    vars: SplitCssVariables;
    variant: SplitVariant;
    staticComponents: {
        Pane: typeof SplitPane;
        Resizer: typeof SplitResizer;
        Dynamic: typeof SplitDynamic;
    };
}>;
export declare const Split: import("@mantine/core").MantineComponent<{
    props: SplitProps;
    defaultComponent: "div";
    ref: HTMLDivElement;
    stylesNames: SplitStylesNames;
    vars: SplitCssVariables;
    variant: SplitVariant;
    staticComponents: {
        Pane: typeof SplitPane;
        Resizer: typeof SplitResizer;
        Dynamic: typeof SplitDynamic;
    };
}>;
