import { Plugin } from 'vite';
import { DefaultTheme } from 'vitepress';

type SidebarItem = DefaultTheme.SidebarItem & {
    fname: string;
};
interface SidebarPluginOptionType {
    ignoreList?: Array<RegExp | string>;
    path?: string;
    createIndex?: boolean;
    ignoreIndexItem?: boolean;
    deletePrefix?: string | RegExp;
    collapsed?: boolean;
    /**
     * Directory meta file name
     * ```json
     * {
     *   "title": "xxx",
     *   "order": ["b.md", "a.md"],
     *   "collapsed": true
     * }
     * ```
     *
     * @default '.sidebar.meta.json'
     */
    metaFilename?: string;
    /**
     * Whether to get the sidebar title from the file
     *
     * @default false
     */
    titleFromFile?: boolean;
    titleFromFileByYaml?: boolean;
    sideBarResolved?: (data: DefaultTheme.SidebarMulti) => DefaultTheme.SidebarMulti;
    sideBarItemsResolved?: (data: SidebarItem[]) => SidebarItem[];
    beforeCreateSideBarItems?: (data: string[]) => string[];
}

declare function VitePluginVitePressAutoSidebar(opt?: SidebarPluginOptionType): Plugin;

export { VitePluginVitePressAutoSidebar as default };
