import * as i0 from '@angular/core';
import { ModuleWithProviders } from '@angular/core';
import * as i1 from '@fortawesome/angular-fontawesome';
import { FaIconLibraryInterface, IconPrefix, IconName, IconDefinition } from '@fortawesome/angular-fontawesome';

declare class FaTestingConfig {
    /**
     * What to do when `addIcons()` or `addIconPacks()` is invoked on
     * the FaIconLibrary provided by the FontAwesomeTestingModule.
     *
     * Possible values are:
     * - `'throwError'` -  Throw an error.
     * - `'logWarning'` - Write a warning to the console.
     * - `'noop'` - Do nothing.
     *
     * Note that in any case the icon will not be added to the library.
     *
     * @default 'throwError'
     */
    whenAddingIcons: 'throwError' | 'logWarning' | 'noop';
    static ɵfac: i0.ɵɵFactoryDeclaration<FaTestingConfig, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FaTestingConfig>;
}

declare class FontAwesomeTestingModule {
    /**
     * Use this method to configure the module’s behaviour when trying to add icons
     * and icon packs to the mock icon library.
     */
    static forRoot(config?: Partial<FaTestingConfig>): ModuleWithProviders<FontAwesomeTestingModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<FontAwesomeTestingModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FontAwesomeTestingModule, never, never, [typeof i1.FontAwesomeModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FontAwesomeTestingModule>;
}

declare class MockFaIconLibrary implements FaIconLibraryInterface {
    private config;
    constructor(config: FaTestingConfig);
    addIcons(): void;
    addIconPacks(): void;
    getIconDefinition(prefix: IconPrefix, name: IconName): IconDefinition;
    static ɵfac: i0.ɵɵFactoryDeclaration<MockFaIconLibrary, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MockFaIconLibrary>;
}

export { FaTestingConfig, FontAwesomeTestingModule, MockFaIconLibrary };
