import { ApplicationRef, ComponentRef, EnvironmentInjector, Injector, InputSignal, ModelSignal, TemplateRef, WritableSignal } from '@angular/core';
import { Router } from '@angular/router';
import { Ng2MultiModalComponent } from "./ng2-multi-modal.component";
import { DockComponent } from "./components/dock/dock.component";
import * as i0 from "@angular/core";
export interface ModalConfig {
    content: TemplateRef<any>;
    title?: InputSignal<string | TemplateRef<any>>;
    icon?: InputSignal<string | TemplateRef<any> | null>;
    align?: InputSignal<"leftTop" | "rightTop" | "leftBottom" | "rightBottom">;
    bodyStyle?: InputSignal<{
        [key: string]: any;
    }>;
    closeOnNavigation?: InputSignal<boolean>;
    closable?: InputSignal<boolean>;
    minHeight?: InputSignal<number>;
    minWidth?: InputSignal<number>;
    maximizable?: InputSignal<boolean>;
    minimizable?: InputSignal<boolean>;
    resizable?: InputSignal<boolean>;
    outOfBounds?: InputSignal<boolean>;
    loadingTip?: InputSignal<string | TemplateRef<any>>;
    height?: ModelSignal<number>;
    width?: ModelSignal<number>;
    zIndex?: ModelSignal<number>;
    offsetY?: ModelSignal<number>;
    offsetX?: ModelSignal<number>;
    loading?: ModelSignal<boolean>;
    theme?: ModelSignal<"light" | "dark">;
    draggable?: ModelSignal<boolean>;
    contentScrollable?: ModelSignal<boolean>;
    minimized?: ModelSignal<boolean>;
    maximized?: ModelSignal<boolean>;
}
export declare class Ng2MultiModalService {
    private _appRef;
    private _injector;
    private _environmentInjector;
    private router;
    private unsubscribe$;
    constructor(_appRef: ApplicationRef, _injector: Injector, _environmentInjector: EnvironmentInjector, router: Router);
    readonly dockTheme: WritableSignal<"light" | "dark">;
    readonly language: WritableSignal<"es" | "en">;
    maxZIndex: number;
    instances: ComponentRef<Ng2MultiModalComponent>[];
    selectedWindow: WritableSignal<string | null>;
    dockComponentRef: ComponentRef<DockComponent> | null;
    destroy(modalId: string): void;
    addMinimizeItem(windowComponent: Ng2MultiModalComponent): void;
    createDock(): void;
    destroyDock(): void;
    createWrapper(): void;
    destroyWrapper(): void;
    create(options: ModalConfig): Promise<Ng2MultiModalComponent>;
    detachView(componentRef: ComponentRef<any>): void;
    private _appendToPage;
    static ɵfac: i0.ɵɵFactoryDeclaration<Ng2MultiModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<Ng2MultiModalService>;
}
