import { ValidatorResult } from 'jsonschema'; import type HttpProxy from 'http-proxy'; import { Plugin as RollupPlugin } from 'rollup'; declare type ScriptType = 'mount' | 'run' | 'build' | 'bundle'; export declare type EnvVarReplacements = Record; /** Snowpack export map */ export declare type SnowpackBuildMap = { [outputLoc: string]: SnowpackSourceFile; }; /** Standard file interface */ export interface SnowpackSourceFile { /** base extension (e.g. `.js`) */ baseExt: string; /** file contents */ code: string; /** expanded extension (e.g. `.proxy.js` or `.module.css`) */ expandedExt: string; /** if no location on disk, assume this exists in memory */ locOnDisk?: string; } export declare type SnowpackPluginBuildArgs = { contents: string; filePath: string; isDev: boolean; }; export declare type SnowpackPluginTransformArgs = { contents: string; urlPath: string; isDev: boolean; }; export declare type SnowpackPluginBuildResult = { result: string; resources?: { css?: string; }; }; export declare type SnowpackPluginTransformResult = { result: string; resources?: { css?: string; }; }; export declare type SnowpackPlugin = { defaultBuildScript?: string; knownEntrypoints?: string[]; build?: (args: SnowpackPluginBuildArgs) => null | SnowpackPluginBuildResult | Promise; transform?: (args: SnowpackPluginTransformArgs) => null | SnowpackPluginTransformResult | Promise; bundle?(args: { srcDirectory: string; destDirectory: string; jsFilePaths: Set; log: (msg: any) => void; }): Promise; }; export declare type BuildScript = { id: string; match: string[]; type: ScriptType; cmd: string; watch?: string; plugin?: SnowpackPlugin; args?: any; }; export declare type ProxyOptions = HttpProxy.ServerOptions & { on: Record; }; export declare type Proxy = [string, ProxyOptions]; export interface SnowpackConfig { install: string[]; extends?: string; exclude: string[]; knownEntrypoints: string[]; webDependencies?: { [packageName: string]: string; }; scripts: BuildScript[]; plugins: SnowpackPlugin[]; devOptions: { secure: boolean; port: number; out: string; fallback: string; open: string; bundle: boolean | undefined; hmr: boolean; }; installOptions: { dest: string; env: EnvVarReplacements; treeshake?: boolean; installTypes: boolean; sourceMap?: boolean | 'inline'; externalPackage: string[]; alias: { [key: string]: string; }; namedExports: string[]; rollup: { plugins: RollupPlugin[]; dedupe?: string[]; }; }; buildOptions: { baseUrl: string; metaDir: string; }; proxy: Proxy[]; } export interface CLIFlags extends Omit, 'env'> { help?: boolean; version?: boolean; reload?: boolean; config?: string; env?: string[]; open?: string[]; secure?: boolean; } export declare function createConfiguration(config: Partial): [ValidatorResult['errors'], undefined] | [null, SnowpackConfig]; export declare function loadAndValidateConfig(flags: CLIFlags, pkgManifest: any): SnowpackConfig; export {};