import * as i0 from '@angular/core';
import { InjectionToken, AfterContentChecked, Renderer2, ModuleWithProviders, EnvironmentProviders, Provider } from '@angular/core';
import { IconDefinition, IconService, IconBase, ThemeType, RenderMeta } from '@ant-design/icons-angular';
import { Subject } from 'rxjs';
import { NzConfigService } from 'ng-zorro-antd/core/config';

interface NzIconfontOption {
    scriptUrl: string;
}
declare const NZ_ICONS: InjectionToken<IconDefinition[]>;
declare const NZ_ICON_DEFAULT_TWOTONE_COLOR: InjectionToken<unknown>;
declare const DEFAULT_TWOTONE_COLOR = "#1890ff";
/**
 * It should be a global singleton, otherwise registered icons could not be found.
 */
declare class NzIconService extends IconService {
    protected readonly nzConfigService: NzConfigService;
    private readonly platform;
    configUpdated$: Subject<void>;
    protected get _disableDynamicLoading(): boolean;
    private iconfontCache;
    normalizeSvgElement(svg: SVGElement): void;
    fetchFromIconfont(opt: NzIconfontOption): void;
    createIconfontIcon(type: string): SVGElement;
    constructor();
    private onConfigChange;
    private configDefaultTheme;
    private configDefaultTwotoneColor;
    private getConfig;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzIconService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NzIconService>;
}
declare const NZ_ICONS_PATCH: InjectionToken<IconDefinition[]>;
declare class NzIconPatchService {
    private readonly extraIcons;
    private readonly rootIconService;
    patched: boolean;
    doPatch(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzIconPatchService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NzIconPatchService>;
}

declare class NzIconDirective extends IconBase implements AfterContentChecked {
    private readonly ngZone;
    private readonly changeDetectorRef;
    private readonly destroyRef;
    private readonly pendingTasks;
    private readonly isBrowser;
    protected readonly el: HTMLElement;
    protected readonly renderer: Renderer2;
    protected readonly iconService: NzIconService;
    readonly nzType: i0.InputSignal<string | undefined>;
    readonly nzTheme: i0.InputSignal<ThemeType | undefined>;
    readonly nzTwotoneColor: i0.InputSignal<string | undefined>;
    readonly nzSpin: i0.InputSignalWithTransform<boolean, unknown>;
    readonly nzRotate: i0.InputSignalWithTransform<number, unknown>;
    readonly nzIconfont: i0.InputSignal<string | undefined>;
    protected readonly hostClass: i0.Signal<string[]>;
    protected get selfRenderMeta(): RenderMeta;
    constructor();
    /**
     * If custom content is provided, try to normalize SVG elements.
     */
    ngAfterContentChecked(): void;
    /**
     * Replacement of `changeIcon` for more modifications.
     */
    private changeIcon2;
    private handleRotate;
    private setSVGData;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzIconDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzIconDirective, "nz-icon,[nz-icon]", ["nzIcon"], { "nzType": { "alias": "nzType"; "required": false; "isSignal": true; }; "nzTheme": { "alias": "nzTheme"; "required": false; "isSignal": true; }; "nzTwotoneColor": { "alias": "nzTwotoneColor"; "required": false; "isSignal": true; }; "nzSpin": { "alias": "nzSpin"; "required": false; "isSignal": true; }; "nzRotate": { "alias": "nzRotate"; "required": false; "isSignal": true; }; "nzIconfont": { "alias": "nzIconfont"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

declare class NzIconModule {
    static forRoot(icons: IconDefinition[]): ModuleWithProviders<NzIconModule>;
    static forChild(icons: IconDefinition[]): ModuleWithProviders<NzIconModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzIconModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzIconModule, never, [typeof NzIconDirective], [typeof NzIconDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzIconModule>;
}

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

declare const NZ_ICONS_USED_BY_ZORRO: IconDefinition[];

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

/**
 * Provide icon definitions for NzIcon in root
 *
 * @param icons Icon definitions
 */
declare const provideNzIcons: (icons: IconDefinition[]) => EnvironmentProviders;
/**
 * Provide icon definitions for NzIcon in feature module or standalone component
 *
 * @param icons Icon definitions
 */
declare const provideNzIconsPatch: (icons: IconDefinition[]) => Provider[];

export { DEFAULT_TWOTONE_COLOR, NZ_ICONS, NZ_ICONS_PATCH, NZ_ICONS_USED_BY_ZORRO, NZ_ICON_DEFAULT_TWOTONE_COLOR, NzIconDirective, NzIconModule, NzIconPatchService, NzIconService, provideNzIcons, provideNzIconsPatch };
export type { NzIconfontOption };
