import { LicenseTest } from './LicenseTest';
import { LicenseIdentifiedModule } from './LicenseIdentifiedModule';
import { IncludeExcludeTest } from './IncludeExcludeTest';
import { Module } from './Module';
import { PluginStats } from './PluginStats';
interface PluginOptions {
    licenseInclusionTest?: LicenseTest;
    unacceptableLicenseTest?: LicenseTest;
    handleUnacceptableLicense?: ((packageName: string, licenseType: string) => void);
    handleMissingLicenseText?: ((packageName: string, licenseType: string | null) => string | null);
    perChunkOutput?: boolean;
    licenseTemplateDir?: string;
    licenseTextOverrides?: {
        [key: string]: string;
    };
    licenseFileOverrides?: {
        [key: string]: string;
    };
    licenseTypeOverrides?: {
        [key: string]: string;
    };
    renderLicenses?: ((modules: LicenseIdentifiedModule[]) => string);
    renderBanner?: ((filename: string, modules: LicenseIdentifiedModule[]) => string);
    outputFilename?: string;
    addBanner?: boolean;
    chunkIncludeExcludeTest?: IncludeExcludeTest;
    modulesDirectories?: string[];
    additionalChunkModules?: {
        [chunkName: string]: Module[];
    };
    additionalModules?: Module[];
    preferredLicenseTypes?: string[];
    handleLicenseAmbiguity?: ((packageName: string, licenses: {
        type: string;
        url: string;
    }[]) => string);
    handleMissingLicenseType?: ((packageName: string) => string | null);
    excludedPackageTest?: ((packageName: string) => boolean);
    stats?: PluginStats;
    skipChildCompilers?: boolean;
}
export { PluginOptions };
