import { Plugin } from 'vite'; interface Context { helpers: { /** * A helper function to help to determine whether the passed string parameter equals the * current transforming module ID with normalization of paths capabilities and * cross platform / OS compatibilities. * * @param equalsWith - String to equal with * @returns boolean */ idEquals: (equalsWith: string) => boolean; /** * A helper function to help to determine whether the passed string parameter startsWith the * current transforming module ID with normalization of paths capabilities and * cross platform / OS compatibilities. * * @param startsWith - String to start with * @returns boolean */ idStartsWith: (startsWith: string) => boolean; /** * A helper function to help to determine whether the passed string parameter endsWith the * current transforming module ID with normalization of paths capabilities and * cross platform / OS compatibilities. * * @param endsWith - String to end with * @returns boolean */ idEndsWith: (endsWith: string) => boolean; /** * A helper function to help to determine whether the passed first path parameter * equals the second passed string with normalization of paths capabilities and * cross platform / OS compatibilities. * * @param path - Path to be compared with * @param equalsWith - String to equal with * @returns boolean */ pathEquals: (path: string, equalsWith: string) => boolean; /** * A helper function to help to determine whether the passed first path parameter * startsWith the second passed string with normalization of paths capabilities and * cross platform / OS compatibilities. * * @param path - Path to be compared with * @param startsWith - String to start with * @returns boolean */ pathStartsWith: (path: string, startsWith: string) => boolean; /** * A helper function to help to determine whether the passed first path parameter * endsWith the second passed string with normalization of paths capabilities and * cross platform / OS compatibilities. * * @param path - Path to be compared with * @param endsWith - String to end with * @returns boolean */ pathEndsWith: (path: string, endsWith: string) => boolean; }; } interface PagePropertiesMarkdownSectionOptions { /** * The list of file names to exclude from the transformation * * @default ['index.md'] */ excludes?: string[]; /** * The function to exclude the file from the transformation * * @param id - the current transforming module ID (comes from vite when transform hook is called) * @param context - the context object, contains several helper functions * @returns boolean * @default () => false */ exclude?: (id: string, context: Context) => boolean; } declare function PagePropertiesMarkdownSection(options?: PagePropertiesMarkdownSectionOptions): Plugin; interface LanguageHandler { regex: RegExp; wordsPerMinute: number; } interface ReadingTimeStats { readingTime: number; wordsCount: number; } declare function PageProperties(): Plugin; export { PageProperties, PagePropertiesMarkdownSection }; export type { Context, LanguageHandler, PagePropertiesMarkdownSectionOptions, ReadingTimeStats as ReadingTimeResult };