import type {loader} from 'webpack'; import type glob from 'glob'; export type Loader = loader.Loader; export type LoaderContext = loader.LoaderContext; export type LoaderCallback = loader.loaderCallback; export type StyleResourcesFileFormat = 'css' | 'sass' | 'scss' | 'less' | 'styl'; export interface StyleResource { file: string; content: string; } export type StyleResources = StyleResource[]; export type StyleResourcesFunctionalInjector = ( this: LoaderContext, source: string, resources: StyleResources, ) => string | Promise; export type StyleResourcesInjector = 'prepend' | 'append' | StyleResourcesFunctionalInjector; export type StyleResourcesNormalizedInjector = StyleResourcesFunctionalInjector; export interface StyleResourcesLoaderOptions { patterns: string | string[]; injector?: StyleResourcesInjector; globOptions?: glob.IOptions; resolveUrl?: boolean; } export interface StyleResourcesLoaderNormalizedOptions extends NonNullable { patterns: string[]; injector: StyleResourcesNormalizedInjector; }