/**
 *
 * carbon-angular v0.0.0 | base-modal.service.d.ts
 *
 * Copyright 2014, 2026 IBM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


import { ComponentRef, EnvironmentInjector } from "@angular/core";
import { PlaceholderService } from "carbon-components-angular/placeholder";
import * as i0 from "@angular/core";
/**
 * Modal service handles instantiating and destroying modal instances.
 * Uses PlaceholderService to track open instances, and for it's placeholder view reference.
 */
export declare class BaseModalService {
    placeholderService: PlaceholderService;
    protected static modalList: Array<ComponentRef<any>>;
    /**
     * Current module/component injection enviornment
     * Allows modules to use providers from calling component
     *
     * Root Module/
     * └── Lazy loaded Feature Module/
     * 	 ├── Provides Service & imports modules
     * 	 ├── Modal component (component that extends base component)
     * 	 └── Modal component launcher (dynamically creates modal component)
     *
     * Passing EnvironmentInjector in `createComponent` will look for provider declaration in feature
     * module instead of root module. This is required to pass correct context in a lazy-loaded applications.
     * Services injected in root, will also be available as feature module enviornment will also hierarchically inherit
     * the root services.
     */
    protected environment: EnvironmentInjector;
    /**
     * Creates an instance of `ModalService`.
     */
    constructor(placeholderService: PlaceholderService);
    /**
     * Creates and renders the modal component that is passed in.
     * `inputs` is an optional parameter of `data` that can be passed to the `Modal` component.
     */
    create<T>(data: {
        component: any;
        inputs?: any;
    }): ComponentRef<any>;
    /**
     * Destroys the modal on the supplied index.
     * When called without parameters it destroys the most recently created/top most modal.
     */
    destroy(index?: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<BaseModalService>;
}
