import { ClassComponent, Dependency } from 'laravel-mix/types/component'; import webpack from 'webpack'; import { mix as mixType } from './types'; import Entry = mixType.Entry; export declare function ucfirst(string: any): any; export declare namespace LaravelExtension { interface Options { packages?: Array; outputPath?: string; applyOptimization?: boolean; quasar?: boolean; replaceScssFiles: ScssReplacer[]; search?: string[]; recognizer?: (path: any) => boolean; } interface Package { name: string; entry: string; entryName: string; prefix: string; scssRule?: webpack.RuleSetRule; package: any; config?: any; path(...parts: any[]): string; has(...parts: any[]): boolean; read(...parts: any[]): string; write(data: any, ...parts: any[]): void; } type ScssObjectReplacer = { replace: string; with: string; }; type ScssCallbackReplacer = ((path: string) => string); type ScssReplacer = ScssObjectReplacer | ScssCallbackReplacer; } export declare class LaravelExtension implements ClassComponent { passive: boolean; options: LaravelExtension.Options; packages: LaravelExtension.Package[]; name(): string; register(options: LaravelExtension.Options): void; webpackEntry?(entry: Entry): void; webpackConfig(config: webpack.Configuration): void; boot(): void; dependencies(): Dependency | Dependency[]; webpackRules(): webpack.RuleSetRule | webpack.RuleSetRule[]; babelConfig(): { babelrc: boolean; configFile: boolean; compact: boolean; sourceMaps: boolean; comments: boolean; presets: string[]; plugins: (string | (string | { libraryName: string; libraryDirectory: string; camel2DashComponentName: boolean; })[])[]; }; } export default LaravelExtension;