import * as vue from 'vue';
import { PropType, VNode, SlotsType, FunctionalComponent, ComputedRef } from 'vue';
import { Slot } from '@vuepress/helper/client';
import { A as ArticleCoverSlotData, a as ArticleTitleSlotData, b as ArticleInfoSlotData, c as ArticleExcerptSlotData, H as HeroInfoSlotData, d as HeroLogoSlotData, e as HeroBackgroundSlotData, B as BloggerInfoSlotData, j as PageInfoProps } from './slots-Bt1PQIHa.js';
import { P as PageInfoData, A as ArticleInfoData, T as ThemeBlogHomeProjectOptions, a as PageInfoType, B as BlogLocaleData, b as BlogLocaleConfig } from './blogHome-N6fRDw8N.js';
export { b as Blog, _ as BloggerInfo, a as SocialMedias } from './Blog-piWuuoI-.js';
import { BlogTypeData, BlogCategoryData, Article } from '@vuepress/plugin-blog/client';
import '@vuepress/plugin-reading-time/client';
import 'vuepress/shared';
import '@vuepress/plugin-reading-time';

declare const _default$e: vue.DefineComponent<vue.ExtractPropTypes<{
    /**
     * Article information
     *
     * 文章信息
     */
    info: {
        type: PropType<PageInfoData & ArticleInfoData>;
        required: true;
    };
    /**
     * Article path
     *
     * 文章路径
     */
    path: {
        type: StringConstructor;
        required: true;
    };
}>, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    /**
     * Article information
     *
     * 文章信息
     */
    info: {
        type: PropType<PageInfoData & ArticleInfoData>;
        required: true;
    };
    /**
     * Article path
     *
     * 文章路径
     */
    path: {
        type: StringConstructor;
        required: true;
    };
}>> & Readonly<{}>, {}, SlotsType<{
    articleCover?: Slot<ArticleCoverSlotData>;
    articleTitle?: Slot<ArticleTitleSlotData>;
    articleInfo?: Slot<ArticleInfoSlotData>;
    articleExcerpt?: Slot<ArticleExcerptSlotData>;
}>, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$d: vue.DefineComponent<vue.ExtractPropTypes<{
    /**
     * Articles
     *
     * 文章项目
     */
    items: {
        type: PropType<{
            path: string;
            info: PageInfoData & ArticleInfoData;
        }[]>;
        required: true;
    };
}>, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    /**
     * Articles
     *
     * 文章项目
     */
    items: {
        type: PropType<{
            path: string;
            info: PageInfoData & ArticleInfoData;
        }[]>;
        required: true;
    };
}>> & Readonly<{}>, {}, SlotsType<{
    articleCover?: Slot<ArticleCoverSlotData>;
    articleTitle?: Slot<ArticleTitleSlotData>;
    articleInfo?: Slot<ArticleInfoSlotData>;
    articleExcerpt?: Slot<ArticleExcerptSlotData>;
}>, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$c: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$b: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$a: vue.DefineComponent<{}, () => VNode | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, SlotsType<{
    heroInfo?: Slot<HeroInfoSlotData>;
    heroLogo?: Slot<HeroLogoSlotData>;
    heroBg?: Slot<HeroBackgroundSlotData>;
}>, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$9: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, SlotsType<{
    heroInfo?: Slot<HeroInfoSlotData>;
    heroLogo?: Slot<HeroLogoSlotData>;
    heroBg?: Slot<HeroBackgroundSlotData>;
    heroBefore?: Slot;
    heroAfter?: Slot;
    articleCover?: Slot<ArticleCoverSlotData>;
    articleTitle?: Slot<ArticleTitleSlotData>;
    articleInfo?: Slot<ArticleInfoSlotData>;
    articleExcerpt?: Slot<ArticleExcerptSlotData>;
    articlesBefore?: Slot;
    articlesAfter?: Slot;
    bloggerInfo?: Slot<BloggerInfoSlotData>;
    infoBefore?: Slot;
    infoAfter?: Slot;
    content?: Slot;
    contentBefore?: Slot;
    contentAfter?: Slot;
}>, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$8: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$7: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$6: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const InfoPanel: FunctionalComponent<Record<never, never>, [
], {
    bloggerInfo?: Slot<BloggerInfoSlotData>;
    infoBefore?: Slot;
    infoAfter?: Slot;
}>;

declare const _default$5: vue.DefineComponent<vue.ExtractPropTypes<{
    /**
     * Number of total items
     *
     * 项目总数
     */
    total: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * Items per page
     *
     * 每页项目数
     */
    perPage: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * Current page number
     *
     * 当前页面
     */
    current: {
        type: NumberConstructor;
        default: number;
    };
}>, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "updateCurrentPage"[], "updateCurrentPage", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    /**
     * Number of total items
     *
     * 项目总数
     */
    total: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * Items per page
     *
     * 每页项目数
     */
    perPage: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * Current page number
     *
     * 当前页面
     */
    current: {
        type: NumberConstructor;
        default: number;
    };
}>> & Readonly<{
    onUpdateCurrentPage?: ((...args: any[]) => any) | undefined;
}>, {
    total: number;
    perPage: number;
    current: number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$4: vue.DefineComponent<vue.ExtractPropTypes<{
    /** 项目列表 */
    items: {
        type: PropType<ThemeBlogHomeProjectOptions[]>;
        required: true;
    };
}>, () => VNode | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    /** 项目列表 */
    items: {
        type: PropType<ThemeBlogHomeProjectOptions[]>;
        required: true;
    };
}>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$3: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$2: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$1: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default: vue.DefineComponent<{}, () => VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const CategoryIcon: FunctionalComponent;
declare const TagIcon: FunctionalComponent;
declare const TimelineIcon: FunctionalComponent;
declare const SlideIcon: FunctionalComponent;
declare const StickyIcon: FunctionalComponent;
declare const ArticleIcon: FunctionalComponent;

declare const useArticleInfo: (props: {
    info: ArticleInfoData;
    path: string;
}) => {
    info: ComputedRef<PageInfoProps>;
    items: ComputedRef<PageInfoType[] | false | null>;
};

type ArticlesRef = ComputedRef<BlogTypeData<ArticleInfoData>>;
/**
 * Inject articles
 */
declare const useArticles: () => ArticlesRef;

declare const useBlogLocale: () => ComputedRef<BlogLocaleData>;

declare const useBlogOptions: () => ComputedRef<BlogLocaleConfig>;

type CategoryMapRef = ComputedRef<BlogCategoryData<ArticleInfoData>>;
/**
 * Inject categoryMap
 */
declare const useCategoryMap: () => CategoryMapRef;

type StarsRef = ComputedRef<BlogTypeData<ArticleInfoData>>;
/**
 * Inject stars
 */
declare const useStars: () => StarsRef;

type TagMapRef = ComputedRef<BlogCategoryData<ArticleInfoData>>;
/**
 * Inject tagMap
 */
declare const useTagMap: () => TagMapRef;

interface TimelineItem {
    year: number;
    items: {
        date: string;
        path: string;
        info: ArticleInfoData;
    }[];
}
type TimelineRef = ComputedRef<{
    path: string;
    config: TimelineItem[];
    items: Article<ArticleInfoData>[];
}>;
/**
 * Inject timeline
 */
declare const useTimeline: () => TimelineRef;

export { ArticleIcon, _default$e as ArticleItem, _default$d as ArticleList, _default$b as ArticleType, _default$c as ArticlesInfo, _default$a as BlogHero, _default$9 as BlogHomePage, _default$8 as CategoriesInfo, CategoryIcon, _default$7 as CategoryList, _default$6 as InfoList, InfoPanel, _default$5 as Pagination, _default$4 as ProjectPanel, SlideIcon, StickyIcon, TagIcon, _default$3 as TagList, _default$2 as TagsInfo, TimelineIcon, _default$1 as TimelineItems, _default as TimelineList, useArticleInfo, useArticles, useBlogLocale as useBlogLocaleData, useBlogOptions, useCategoryMap, useStars, useTagMap, useTimeline };
