import { ChangeSetHandlerDefinition, SharedFunctionFactory } from '../types/innerFunction'; import { CustomFunctionFeatures, V2ResourceDescriptor } from '../types/customFunction'; import { Utilities } from '../types/function'; /** * Derive the CustomFunctionFeatures a shared function advertises, from its * normalised resource descriptors and (optional) changeset handlers. * * Pure — shared by generateSharedFunction (route builder) and * describeSharedResources (build-time enumeration) so both agree on the flags. */ export declare const deriveSharedFeatures: (resources: V2ResourceDescriptor[], changeSetHandlers?: ChangeSetHandlerDefinition[]) => CustomFunctionFeatures; /** * Enumerate a shared function's resources WITHOUT building lambda routes. * * Runs the async factory ONCE and resolves its `resources` declaration against * `input` — a real, authenticated services bag (see `createUtilities`), so the * list may be derived from live tenant data. Returns the descriptors plus the * feature flags that get mirrored into `info.json.features` / * `pkg_metadata.mex.resources`. * * This is the build-time path, and the ONLY place the resource list is derived. * The lambda never runs it: the backend registry, populated from this output at * install, is the single copy. * * `input` may be omitted to enumerate a STATIC declaration offline (the author's * `generate-info.ts`); a dynamic one then throws, since only the cloud builder * holds the credentials to resolve it. */ export declare const describeSharedResources: (factory: SharedFunctionFactory, input?: Utilities) => Promise<{ resources: V2ResourceDescriptor[]; features: CustomFunctionFeatures; }>; //# sourceMappingURL=describeSharedResources.d.ts.map