import { MutableRefObject } from 'react';
import { DocumentRegistry } from '@jupyterlab/docregistry';
import { Contents } from '@jupyterlab/services';
/**
 * Content item view model
 */
export interface IContentsView extends Contents.IModel {
    /**
     * Model file type
     */
    fileType?: DocumentRegistry.IFileType;
}
interface ITreeItemProps {
    /**
     * Directory model
     */
    item: IContentsView;
    /**
     * Whether the item is currently selected or not.
     */
    current: boolean;
    /**
     * Callback on context menu event.
     */
    onContextMenu: (ref: MutableRefObject<HTMLElement | null>) => void;
    /**
     * Callback on item selection
     */
    onSelect: (item: IContentsView) => void;
}
/**
 * Directory component properties
 */
interface IDirectoryItemProps extends Omit<ITreeItemProps, 'current' | 'onSelect' | 'refresh'> {
    /**
     * Jupyter contents manager
     */
    contents: Contents.IManager;
    /**
     * Current item
     */
    current: IContentsView | null;
    /**
     * Jupyter document registry
     */
    documentRegistry?: DocumentRegistry;
    /**
     * Callback on item selection
     */
    onSelect: (item: IContentsView, refresh: () => void) => void;
}
export declare function modelToView(models: Contents.IModel[], docRegistry?: DocumentRegistry): IContentsView[];
/**
 * Directory tree item component
 */
export declare function DirectoryItem(props: IDirectoryItemProps): JSX.Element;
export declare function TreeItem(props: ITreeItemProps): import("react/jsx-runtime").JSX.Element;
export {};
