import React, { ElementType } from 'react';
import { ButtonSizeType } from './file-tree-item-actions';
import { FileTreeItemContentType, FileTreeItemContentProps, FileTreeItemActionsActions } from '.';
import './file-tree.less';
export type FileTreeType = FileTreeItemContentType[];
export type FileTreeProps = {
    /**
     * Data structure used to display
     */
    fileTree: FileTreeType;
    /**
     * Override component to render for folder items
     */
    FolderComponent?: ElementType;
    /**
     * Optional extra props to pass to the folder component
     */
    folderComponentProps?: {
        actions?: FileTreeItemActionsActions[];
        expand?: boolean;
        FolderActions?: React.ElementType;
        [key: string]: any;
    };
    /**
     * Override component to render for file items
     */
    FileComponent?: ElementType;
    /**
     * Optional extra props to pass to the file component
     */
    fileComponentProps?: {
        actions?: FileTreeItemActionsActions[];
        itemContentComponentProps?: any;
        FileActions?: React.ElementType;
        [key: string]: any;
    };
    /**
     * Override component to render as the contents of either a file or folder item
     */
    ItemContentComponent?: ElementType<FileTreeItemContentProps>;
    /**
     * Allows file tree to place its nodes by different sorting strategies
     */
    sortingStrategy?: (fileTree: FileTreeType) => FileTreeType;
    rootClass?: string;
    rootTestId?: string;
    branchTestId?: string;
    fileTestId?: string;
    folderTestId?: string;
    itemTestId?: string;
    disabled?: boolean;
    /**
     * Optional row size prop that dictates action button size.
     */
    rowSize?: ButtonSizeType;
    /**
     * Shows skeleton isLoading state when true
     */
    isLoading?: boolean;
    /**
     * Optional loading pattern to use for skeleton loading state. It's an array of levels to render. Default is [0, 1, 1, 2, 0]
     */
    loadingPattern?: number[];
};
/** Displays a browsable file tree navigation component
    @midnight-gray-supported
    @alpine-light-supported
 */
export declare const FileTree: ({ fileTree, folderComponentProps, fileComponentProps, rootClass, fileTestId, folderTestId, rowSize, FileComponent, FolderComponent, ItemContentComponent, rootTestId, branchTestId, itemTestId, disabled, sortingStrategy, isLoading, loadingPattern, }: FileTreeProps) => import("react/jsx-runtime").JSX.Element | null;
