import { DynamicBase, type anyOrNever } from "@ark/util"; import type { BaseRoot } from "./roots/root.ts"; import type { BaseScope, InternalResolution, InternalResolutions } from "./scope.ts"; import { arkKind } from "./shared/utils.ts"; export type PreparsedNodeResolution = { [arkKind]: "generic" | "module"; }; export declare class RootModule extends DynamicBase { get [arkKind](): "module"; } export interface InternalModule extends RootModule { root?: BaseRoot; } export declare const bindModule: (module: InternalModule, $: BaseScope) => InternalModule; type exportSchemaScope<$> = { [k in keyof $]: instantiateRoot<$[k]>; }; export type instantiateRoot = t extends InternalResolution ? [ t ] extends [anyOrNever] ? BaseRoot : t : BaseRoot; export declare const SchemaModule: new <$ = {}>(types: exportSchemaScope<$>) => SchemaModule<$>; export interface SchemaModule<$ = {}> extends RootModule> { } export {};