import { ViewContainerRef } from '@angular/core';
import type { EnvironmentInjector, Injector, NgModuleRef, Type } from '@angular/core';
import type { AngularComponentOutput } from '../models/angularComponentOutput.interface';
import * as i0 from "@angular/core";
interface CreateComponentOption {
    index?: number;
    injector?: Injector;
    ngModuleRef?: NgModuleRef<unknown>;
    environmentInjector?: EnvironmentInjector | NgModuleRef<unknown>;
    projectableNodes?: Node[][];
    sanitizer?: (dirtyHtml: string) => string;
}
export declare class AngularUtilService {
    private vcr;
    constructor(vcr: ViewContainerRef);
    createInteractiveAngularComponent<C>(component: Type<C>, targetElement: Element, data?: any, createCompOptions?: CreateComponentOption): AngularComponentOutput;
    /**
     * Dynamically create an Angular component, user could also provide optional arguments for target, data & createComponent options
     * @param {Component} component
     * @param {HTMLElement} [targetElement]
     * @param {*} [data]
     * @param {CreateComponentOption} [createCompOptions]
     * @returns
     */
    createAngularComponent<C>(component: Type<C>, targetElement?: Element, data?: any, createCompOptions?: CreateComponentOption): AngularComponentOutput;
    /**
     * Dynamically create an Angular component and append it to the DOM unless a target element is provided,
     * user could also provide other optional arguments for data & createComponent options.
     * @param {Component} component
     * @param {HTMLElement} [targetElement]
     * @param {*} [data]
     * @param {CreateComponentOption} [createCompOptions]
     * @returns
     */
    createAngularComponentAppendToDom<C>(component: Type<C>, targetElement?: Element, data?: any, createCompOptions?: CreateComponentOption): AngularComponentOutput;
    static ɵfac: i0.ɵɵFactoryDeclaration<AngularUtilService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AngularUtilService>;
}
export {};
