export interface UpstreamImport { /** Path of the emitted file holding the import, e.g. `select/interfaces.ts`. */ sourcePath: string; /** Absolute path of the upstream declaration file the import resolves to, e.g. `/repo/node_modules/@cloudscape-design/components/types/base-component.d.ts`. */ resolvedPath: string; /** Specifier as the upstream declaration file wrote it, e.g. `../types/base-component`. */ importSpecifier: string; } export interface GenerateProxyInterfacesOptions { /** Paths to patch files of the components to proxy, e.g. `['src/proxy/select/interfaces.patch.d.ts']`. */ entryPoints: string[]; /** Override the specifier an emitted import is written with. Return `{}` to keep it unchanged. */ resolveImport?: ResolveImport; } type ResolveImport = (imported: UpstreamImport) => { importSpecifier?: string; }; export interface GenerateProxyInterfacesResult { /** The proxied interfaces and everything they depend on, ordered by path. */ files: ProxyFile[]; } export interface ProxyFile { /** Place in the proxy tree: the directory the consumer gave a proxied component, upstream's own otherwise, e.g. `select/interfaces.ts`. */ path: string; /** Generated source with license header and awsui-system tags removed. */ source: string; } /** * Generate the interfaces for a set of proxied components. Each entry point names one upstream * component to proxy and may patch its declarations, or leave them as they are. The result holds * those interfaces and everything they reach, down to the shared public types, all transformed alike * so the emitted tree resolves within itself. */ export declare function generateProxyInterfaces({ entryPoints, resolveImport, }: GenerateProxyInterfacesOptions): GenerateProxyInterfacesResult; export {};