export type CustomElementDependency = { tag: Tag; define: () => Promise | void; }; type CustomElementDependencies = readonly CustomElementDependency[]; type DependencyDefinitions = { readonly [Index in keyof TDependencies]: TDependencies[Index] extends CustomElementDependency ? CustomElementDependency : never; }; type DependencyFunctionCallback = (...args: never[]) => Promise; export type DependencyFunction = TCallback & { readonly dependencies: DependencyDefinitions; ensureDependencies: () => Promise; withDependencies: (dependencies: DependencyDefinitions) => DependencyFunction; }; export declare function createDependencyFunction(callback: TCallback, dependencies: TDependencies): DependencyFunction; export {};