import { Plugin } from "postcss";
import { InputOptions } from "rollup";
import { OutputOptions } from "rollup/dist/typings/rollup";
export interface IFoveaCliOutputConfig {
    tag: string;
    directory: string;
    serve: IFoveaCliServeConfig;
    match(userAgent: string): boolean;
    rollupOptions?: Partial<{
        input: InputOptions;
        output: OutputOptions;
    }>;
    postCSSPlugins?: Plugin<{}>[];
    browserslist?: string[];
}
export declare type FoveaCliOutputConfigs = IFoveaCliOutputConfig[] | IFoveaCliOutputConfig;
export interface IFoveaCliServeConfig {
    port: number;
    host: string;
}
export interface IFoveaCliEnvironmentConfig {
    environmentDefaults: string;
    environment: string;
}
export interface IFoveaCliAssetOptimizationConfig {
    media: IFoveaCliAssetOptimizationMediaConfig;
    skipOptimization: boolean;
}
export interface IFoveaCliAssetOptimizationMediaConfig {
    maxSize?: Partial<{
        width: number;
        height: number;
    }>;
    progressive: boolean;
    quality: number;
}
export interface IFoveaCliAssetAppIconConfig {
    path: string;
    sizes: number[];
}
export interface IFoveaCliAssetConfig {
    path: string;
    appIcon: IFoveaCliAssetAppIconConfig;
    optimization: IFoveaCliAssetOptimizationConfig;
}
export interface IFoveaCliConfigMinusOutput {
    entry: string;
    themeStyles: string;
    globalStyles: string;
    manifest: string;
    index: string;
    serviceworker: string;
    tsconfig: string;
    environment: IFoveaCliEnvironmentConfig;
    asset: IFoveaCliAssetConfig;
    packageManager: "yarn" | "npm";
}
export interface IFoveaCliConfig extends IFoveaCliConfigMinusOutput {
    output: FoveaCliOutputConfigs;
}
