import { FileSelectSource, SourceId } from '../FileSelect.types';
import { ListNavigationApi, ListNavigationConfig } from '../../../state/ListNavigation';
export interface FileExplorerProps {
    /**
     * @since 10.19.0
     */
    sources: FileSelectSource[];
    /**
     * @since 10.19.0
     */
    currentSource: SourceId;
    /**
     * @since 10.19.0
     */
    isOpen: boolean;
    /**
     * @since 10.19.0
     */
    onCurrentSourceChange: (sourceId: SourceId) => void;
    /**
     * @since 10.19.0
     */
    unsubmittedValueCount: number;
    /**
     * @since 10.19.0
     */
    onSubmit?: () => void;
    /**
     * @since 10.19.0
     */
    children: React.ReactNode;
    /**
     * @since 10.19.0
     */
    onModalVisibilityChange: (isOpen: boolean) => void;
    /**
     * @since 10.19.0
     */
    maxFileNumber?: number;
    /**
     * @since 10.19.0
     */
    qa?: {
        attachButton?: string;
        cancelButton?: string;
    };
}
export interface FileExplorerSidebarProps {
    /**
     * @since 10.19.0
     */
    value: SourceId;
    /**
     * @since 10.19.0
     */
    onChange: (selectedSource: SourceId) => 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;
}
