type EntryMap = Record; export interface TypiaWebpackArtifactEntry { inputPath: string; outputPath: string; } export interface TypiaWebpackConfigOptions { defaultConfig: unknown; fs: { existsSync(path: string): boolean; readFileSync(path: string, encoding?: string): string | Buffer; writeFileSync(path: string, data: string): void; }; getArtifactEntries: () => TypiaWebpackArtifactEntry[]; getEditorEntries?: () => EntryMap; getOptionalModuleEntries?: () => EntryMap; importTypiaWebpackPlugin: () => Promise<{ default: () => unknown; }>; isScriptModuleAsset?: (assetName: string) => boolean; moduleEntriesMode?: 'merge' | 'replace'; nonModuleEntriesMode?: 'merge' | 'replace'; path: { isAbsolute(path: string): boolean; join(...paths: string[]): string; relative(from: string, to: string): string; resolve(...paths: string[]): string; }; projectRoot?: string; } export interface TypiaWebpackPluginLoaderOptions { importTypiaWebpackPlugin: () => Promise<{ default: () => unknown; }>; projectRoot?: string; } interface TypiaWebpackVersionMatrix { '@typia/unplugin': string | null; '@wordpress/scripts': string | null; typia: string | null; webpack: string | null; } export declare function assertTypiaWebpackCompatibility({ projectRoot, }?: { projectRoot?: string; }): Promise; export declare function loadCompatibleTypiaWebpackPlugin({ importTypiaWebpackPlugin, projectRoot, }: TypiaWebpackPluginLoaderOptions): Promise<() => unknown>; /** * Extend a WordPress webpack config with Typia-generated artifact handling. * * @remarks * This helper keeps emitted validator assets and script-module manifests aligned * with the generated scaffold runtime without rewriting the caller's config by hand. * * @param options - Default config plus artifact, module-entry, and plugin loaders. * @returns A webpack config or config array augmented with Typia support. * @example * ```ts * const config = await createTypiaWebpackConfig({ * defaultConfig, * fs, * getArtifactEntries, * importTypiaWebpackPlugin, * path, * }); * ``` * @category Scaffolding */ export declare function createTypiaWebpackConfig(options: TypiaWebpackConfigOptions): Promise<{ entry: () => Promise>; plugins: unknown[]; } | { entry: () => Promise>; plugins: unknown[]; }[]>; export {};