/// <reference types="webpack-dev-server" />
import 'react-styleguidist/lib/scripts/utils/ensureWebpack';
import { Stats, Configuration, Compiler } from 'webpack';
import { Theme } from 'react-styleguidist';
import { RecursivePartial } from 'react-styleguidist/lib/typings/RecursivePartial';
import { SanitizedStyleguidistConfig, StyleguidistConfig } from '../types/StyleGuide';
import * as binutils from './binutils';
export type ThemeConfig = RecursivePartial<Theme>;
export { StyleguidistConfig as Config };
export { defineConfig, defineEnhanceApp } from './helpers';
export interface StyleGuideUtils {
    /**
     * Build style guide.
     *
     * @param {Function} callback callback(err, config, stats).
     * @return {Compiler} Webpack Compiler instance.
     */
    build: (callback: (err: Error | undefined, config: SanitizedStyleguidistConfig, stats: Stats) => void) => Compiler.Watching | Compiler;
    /**
     * Start style guide dev server.
     *
     * @param {Function} callback callback(err, config).
     * @return {ServerInfo.App} Webpack-Dev-Server.
     * @return {ServerInfo.Compiler} Webpack Compiler instance.
     */
    server: (callback: (err: Error | undefined, config: SanitizedStyleguidistConfig) => void) => binutils.ServerInfo;
    /**
     * Return Styleguidist Webpack config.
     *
     * @param {string} [env=production] 'production' or 'development'.
     * @return {object}
     */
    makeWebpackConfig: (env: 'development' | 'production' | 'none') => Configuration;
    binutils: {
        server: (open: boolean) => binutils.ServerInfo;
        build: () => Compiler;
    };
}
/**
 * Initialize Vue Styleguide API.
 *
 * @param {object} [config] Styleguidist config.
 * @param {function} [updateConfig] update config post resolution
 * @returns {object} API.
 */
export default function (config: SanitizedStyleguidistConfig, updateConfig: (conf: SanitizedStyleguidistConfig) => void): StyleGuideUtils | Promise<StyleGuideUtils>;
