import { TranslationBundle } from '@jupyterlab/translation';
import * as React from 'react';
import { GitExtension } from '../model';
import { Git } from '../tokens';
/**
 * File item properties
 */
export interface IFileItemProps {
    /**
     * Action buttons on the file
     */
    actions?: React.ReactNode;
    /**
     * Callback to open a context menu on the file
     */
    contextMenu?: (file: Git.IStatusFile, event: React.MouseEvent) => void;
    /**
     * File model
     */
    file: Git.IStatusFile;
    /**
     * Is the file marked?
     */
    markBox?: boolean;
    /**
     * Git repository model
     */
    model: GitExtension;
    /**
     * Callback on double click
     */
    onDoubleClick: () => void;
    /**
     * Is the file selected?
     */
    selected?: boolean;
    /**
     * Callback to select file(s)
     */
    setSelection?: (file: Git.IStatusFile, options?: {
        singleton?: boolean;
        group?: boolean;
    }) => void;
    /**
     * Optional style class
     */
    className?: string;
    /**
     * Inline styling for the windowing
     */
    style?: React.CSSProperties;
    /**
     * The application language translator.
     */
    trans: TranslationBundle;
    /**
     * Callback to implement shift-click for simple staging
     */
    markUntilFile?: (file: Git.IStatusFile) => void;
    /**
     * whether the GitMarkBox is checked
     */
    checked?: boolean;
}
export declare class FileItem extends React.PureComponent<IFileItemProps> {
    constructor(props: IFileItemProps);
    protected _onClick: (event: React.MouseEvent<HTMLInputElement>) => void;
    protected _getFileChangedLabel(change: string, trans: TranslationBundle): string;
    protected _getFileChangedLabelClass(change: string): string;
    protected _getFileClass(): string;
    render(): JSX.Element;
}
