import { Plugin } from 'vite'; import { WatchOptions } from 'chokidar'; type MaybePromise = T | Promise; type RenameFunc = (fileName: string, fileExtension: string, fullPath: string) => MaybePromise; /** * @param content content of file * @param filename absolute path to the file * @returns the transformed content. when `null` is returned, the file won't be created. */ type TransformFunc = (content: T, filename: string) => MaybePromise; type TransformOptionObject = { encoding: Exclude; handler: TransformFunc; } | { encoding: 'buffer'; handler: TransformFunc; }; type TransformOption = TransformFunc | TransformOptionObject; type Target = { /** * path or glob */ src: string | string[]; /** * destination */ dest: string; /** * rename */ rename?: string | RenameFunc; /** * transform * * `src` should only include files when this option is used */ transform?: TransformOption; /** * Should timestamps on copied files be preserved? * * When false, timestamp behavior is OS-dependent. * Ignored for transformed files. * @default false */ preserveTimestamps?: boolean; /** * Whether to dereference symlinks. * * When true, symlinks will be dereferenced. * When false, symlinks will not be dereferenced. * @default true */ dereference?: boolean; /** * Whether to overwrite existing file or directory. * * When true, it will overwrite existing file or directory. * When false, it will skip those files/directories. * When 'error', it will throw an error. * * @default true */ overwrite?: boolean | 'error'; }; type ViteStaticCopyOptions = { /** * Array of targets to copy. */ targets: Target[]; /** * Preserve the directory structure. * * Similar to `flatten: false` in rollup-plugin-copy * @default false */ structured?: boolean; /** * Suppress console output. * @default false */ silent?: boolean; watch?: { /** * Watch options */ options?: WatchOptions; /** * Reloads page on file change when true * @default false */ reloadPageOnChange?: boolean; }; }; declare const viteStaticCopy: (options: ViteStaticCopyOptions) => Plugin[]; export { type RenameFunc, type Target, type TransformFunc, type TransformOption, type ViteStaticCopyOptions, viteStaticCopy };