/// <reference types="react" />
import { ListNavigationApi, ListNavigationConfig } from '../../_hooks/ListNavigation';
import { FileSelectSource, FileSelectSourceIdType } from '../FileSelect.types';
export interface FileExplorerProps {
    /**
     * @since 10.19.0
     */
    sources: FileSelectSource[];
    /**
     * @since 10.19.0
     */
    currentSource: FileSelectSourceIdType;
    /**
     * @since 10.19.0
     */
    isOpen: boolean;
    /**
     * @since 10.19.0
     */
    onCurrentSourceChange: (sourceId: FileSelectSourceIdType) => void;
    /**
     * @since 10.19.0
     */
    unsubmittedValueCount: number;
    /**
     * @since 10.19.0
     */
    onSubmit?: () => void;
    /**
     * @since 10.19.0
     */
    children: React.ReactNode;
    /**
     * @since 11.1.0
     */
    onCancel: () => void;
    /**
     * @since 10.19.0
     */
    maxFileNumber?: number;
    /**
     * @since 10.19.0
     */
    qa?: {
        attachButton?: string;
        cancelButton?: string;
    };
}
export interface FileExplorerSidebarProps {
    /**
     * @since 10.19.0
     */
    value: FileSelectSourceIdType;
    /**
     * @since 10.19.0
     */
    onChange: (selectedSource: FileSelectSourceIdType) => void;
    /**
     * @since 10.19.0
     */
    sources: FileSelectSource[];
    /**
     * @since 10.19.0
     */
    isOpen: boolean;
}
export interface SidebarNavigationConfig extends ListNavigationConfig {
    /**
     * @since 10.19.0
     */
    selectedIndex: number;
}
export interface SidebarNavigationApi extends ListNavigationApi {
    /**
     * @since 10.19.0
     */
    up: () => void;
    /**
     * @since 10.19.0
     */
    down: () => void;
}
