import { SxProps } from '@mui/material';
import * as React from 'react';
import { ListItemButtonProps } from '../list/ListItemButton';
export declare const collapsiblePanelSwitcherVariants: readonly ["sortable-move", "sortable-arrow"];
type CollapsiblePanelSwitcherVariant = (typeof collapsiblePanelSwitcherVariants)[number];
export declare const collapsiblePanelSwitcherDirections: readonly ["down", "up"];
type CollapsiblePanelSwitcherDirection = (typeof collapsiblePanelSwitcherDirections)[number];
export type CollapsiblePanelSwitcherProps = React.PropsWithChildren<{
    sx?: SxProps;
    /**
     * The variant of the CollapsiblePanel. Default 'sortable-move'
     */
    variant?: CollapsiblePanelSwitcherVariant;
    /**
     * Whether the panel is collapsed or not. If not supplied, the panel is not collapsed by default.
     */
    isCollapsed: boolean;
    /**
     * Whether the switcher is switcher or not. If not supplied, the panel is not switched by default.
     */
    isSwitched: boolean;
    /**
     * Called when toggle button is clicked.
     * If supplied `header` prop, this field will be ignored.
     */
    onToggle?: () => void;
    /**
     * Called when switcher button is clicked.
     */
    onSwitcherToggle: (checked: boolean) => void;
    /**
     * The header to use for this collapsible panel.
     * Usually, it will be any clickable element like a ListItemButton, where you will have
     * to manage the click event and toggle the `isCollapsed` property properly.
     *
     * If supplied, the `headerText` and `onToggle` will be ignored.
     */
    header?: React.ReactNode;
    /**
     * The text to use in the header for this collapsible panel. Header is always visible.
     * It uses internally a ListItemButton element.
     * If supplied `header` prop, this field will be ignored.
     */
    headerText?: string;
    /**
     * Style properties to use for header when property 'header' is not provided.
     */
    headerBaseSx?: SxProps;
    /**
     * Actions to show to de left of switcher
     */
    middleActions?: React.ReactNode;
    /**
     * Whether the collapse will be placed down or up from the header.
     */
    collapseDirection?: CollapsiblePanelSwitcherDirection;
    /**
     * Set border separator dashed between. Default false
     */
    separatorDashed?: boolean;
    /**
     * When variant is sortable-move, a lock will be displayed instead a move icon. Default false
     */
    moveBlocked?: boolean;
    /**
     * When true, border in collapsible element will be removed. Default false
     */
    removeBorder?: boolean;
    /**
     * When variant is sortable-arrow, disabled down arrow. Default false
     */
    downArrowDisabled?: boolean;
    /**
     * Method called when up arrow is pressed in sortable-arrow.
     */
    onMoveUp?: () => void;
    /**
     * Method called when down arrow is pressed in sortable-arrow.
     */
    onMoveDown?: () => void;
    /**
     * Method called when drag zone is pressed.
     */
    onMouseDownDragZone?: () => void;
    /**
     * Method called when drag zone is not pressed.
     */
    onMouseUpDragZone?: () => void;
}> & Pick<ListItemButtonProps, 'disabled'>;
declare const CollapsiblePanelSwitcher: ({ sx, children, isCollapsed, isSwitched, onToggle, onSwitcherToggle, header, headerText, headerBaseSx, collapseDirection, disabled, variant, separatorDashed, moveBlocked, middleActions, downArrowDisabled, removeBorder, onMoveUp, onMoveDown, onMouseDownDragZone, onMouseUpDragZone }: CollapsiblePanelSwitcherProps) => import("react/jsx-runtime").JSX.Element;
export default CollapsiblePanelSwitcher;
