import { GetMetadataOptions, GetMetadataTemplateOptions, MetadataContext, SourceName } from "./metadata-types.js";
import { TemplateMap, TemplateName } from "./templates/index.js";

//#region src/lib/metadata.d.ts
/** All available source key names, for runtime use (e.g. CLI choices). */
declare const sourceNames: SourceName[];
type PartialPath<T> = Omit<T, 'path'> & {
  path?: string;
};
declare function getMetadata<K extends TemplateName>(options: PartialPath<Omit<GetMetadataOptions, 'template'> & {
  template: K;
}>): Promise<TemplateMap[K]>;
declare function getMetadata<T>(options: PartialPath<GetMetadataTemplateOptions<T>>): Promise<T>;
declare function getMetadata(options?: PartialPath<GetMetadataOptions>): Promise<MetadataContext>;
//#endregion
export { getMetadata, sourceNames };