import { Ignore } from 'ignore';
import { SiteConfig, SiteConfigStyle } from './SiteConfig';
/**
 * Manages site assets such as CSS, JS, fonts, and images.
 * Handles copying, building, and removing assets, as well as handling style reloads.
 */
export declare class SiteAssetsManager {
    rootPath: string;
    outputPath: string;
    siteAssetsDestPath: string;
    siteConfig: SiteConfig;
    constructor(rootPath: string, outputPath: string);
    listAssets(fileIgnore: Ignore): string[];
    _buildMultipleAssets(filePaths: string | string[]): Promise<void>;
    _removeMultipleAssets(filePaths: string | string[]): Promise<void>;
    buildAssets(): Promise<void>;
    /**
     * Handles the reloading of ignore attributes
     */
    handleIgnoreReload(oldIgnore: string[]): Promise<void>;
    /**
     * Handles the reloading of the style attribute if it has been modified
     */
    handleStyleReload(oldStyle: SiteConfigStyle): Promise<void>;
    /**
     * Copies Font Awesome assets to the assets folder
     */
    copyFontAwesomeAsset(): Promise<void>;
    /**
     * Copies Octicon assets to the assets folder
     */
    copyOcticonsAsset(): Promise<void>;
    /**
     * Copies Google Material Icons assets to the assets folder
     */
    copyMaterialIconsAsset(): Promise<void>;
    /**
     * Copies core-web bundles and external assets to the assets output folder
     */
    copyCoreWebAsset(): Promise<void[]>;
    copyBootstrapIconsAsset(): Promise<void>;
    /**
     * Copies bootstrapTheme to the assets folder if a valid bootstrapTheme is specified
     * @param isRebuild only true if it is a rebuild
     */
    copyBootstrapTheme(isRebuild: boolean): Promise<void>;
    /**
     * Build/copy assets that are specified in filePaths
     * @param filePaths a single path or an array of paths corresponding to the assets to build
    */
    buildAsset: (this: any, newItem?: string | string[] | undefined) => Promise<unknown>;
    /**
     * Remove assets that are specified in filePaths
     * @param filePaths a single path or an array of paths corresponding to the assets to remove
     */
    removeAsset: (this: any, newItem?: string | string[] | undefined) => Promise<unknown>;
}
//# sourceMappingURL=SiteAssetsManager.d.ts.map