import type { Awaitable } from '@antfu/utils'; export interface ImportInfo { as?: string; name?: string; from: string; } export type SideEffectsInfo = | (ImportInfo | string)[] | ImportInfo | string | undefined; export interface ComponentInfo extends ImportInfo { sideEffects?: SideEffectsInfo; } export type ComponentResolveResult = Awaitable< string | ComponentInfo | null | undefined | void >; export type ComponentResolverFunction = ( name: string ) => ComponentResolveResult; export interface ComponentResolverObject { type: 'component' | 'directive'; resolve: ComponentResolverFunction; } export type ComponentResolver = | ComponentResolverFunction | ComponentResolverObject;