import type { StylePreprocessorConfig } from '../../types/build'; export declare const compileAngularFiles: (inputPaths: string[], outDir: string, stylePreprocessors?: StylePreprocessorConfig) => Promise; export declare const compileAngularFile: (inputPath: string, outDir: string, stylePreprocessors?: StylePreprocessorConfig) => Promise; export declare const invalidateAngularJitCache: (filePath: string) => void; export declare const compileAngularFileJIT: (inputPath: string, outDir: string, rootDir?: string, stylePreprocessors?: StylePreprocessorConfig, cacheBuster?: string) => Promise; /** Build-time providers info threaded down from `runAngularHandlerScan`. * When present, `compileAngular` injects an `export const providers = [...]` * declaration directly into each page's compiled server output instead * of relying on a sibling `.providers.ts` file. Injecting in-place * avoids the circular ESM dependency that arises when a router page * exports `routes` (`.providers.ts` would import `routes` from the * page, the page server output would re-export `providers` from * `.providers.ts` — circular; `provideRouter(undefined, ...)` then * throws NG04014 at SSR bootstrap). */ export type AngularProvidersInjection = { /** Source `.ts` path of the user's `angular.providers` binding, or null * when no global binding is configured. Router pages still get * `provideRouter(routes)` + `APP_BASE_HREF` injected without it — the * global `appProviders` spread is simply omitted. */ appProvidersSource: string | null; /** Source `.ts` path → page metadata for every page the scanner saw. */ pagesByFile: Map; }; export declare const compileAngular: (entryPoints: string[], outRoot: string, hmr?: boolean, stylePreprocessors?: StylePreprocessorConfig, providersInjection?: AngularProvidersInjection) => Promise<{ clientPaths: string[]; serverPaths: string[]; allIndexesUnchanged?: undefined; } | { allIndexesUnchanged: boolean; clientPaths: string[]; serverPaths: string[]; }>;