type AnyCompilation = { [key: symbol]: unknown; hooks: { processAssets: { tap: (options: { name: string; stage: number; }, callback: () => void) => void; }; }; emitAsset: (filename: string, source: unknown) => void; }; type AnyCompiler = { context: string; webpack?: { Compilation: { PROCESS_ASSETS_STAGE_REPORT: number; }; sources: { RawSource: new (source: string) => unknown; }; }; rspack?: { Compilation: { PROCESS_ASSETS_STAGE_REPORT: number; }; sources: { RawSource: new (source: string) => unknown; }; }; hooks: { thisCompilation: { tap: (name: string, callback: (compilation: AnyCompilation) => void) => void; }; }; }; type LoaderContextWithCompilation = { _compilation?: unknown; resourcePath?: string; cacheable?: (flag?: boolean) => void; }; export declare function recordDiscoveredClientReferenceIfNeeded(loaderContext: LoaderContextWithCompilation, source: string | Buffer): boolean; /** * Emits the client-reference list discovered during the RSC loader pass. * * While active, RSC loader output is marked non-cacheable so watch rebuilds * cannot reuse cached modules and silently miss files that gained `"use client"`. * This trades incremental-build cache reuse for discovery correctness. * * The compilation state uses `Symbol.for` so duplicate package copies that run * against the same compilation share one discovered-reference set. */ export declare class RSCReferenceDiscoveryPlugin { private readonly filename; constructor(options?: { filename?: string; }); apply(compiler: AnyCompiler): void; } export default RSCReferenceDiscoveryPlugin; //# sourceMappingURL=RSCReferenceDiscoveryPlugin.d.ts.map