import * as _angular_core from '@angular/core';
import { Type, InjectionToken, Injector } from '@angular/core';
import { DynamicDialogRef } from 'primeng/dynamicdialog';

interface DynamicDrawerConfigInterface {
    header?: string;
    position?: string;
    data?: any;
    fullScreen?: boolean;
    modal?: boolean;
    closable?: boolean;
    closeOnEscape?: boolean;
    dismissible?: boolean;
    appendTo?: any;
    transitionOptions?: string;
    styleClass?: string;
    inputValues?: any;
}
declare class DrawerService {
    private appRef;
    private env;
    private rootInjector;
    private destroyRef;
    private doc;
    private hostRef?;
    defauiltConfig: DynamicDrawerConfigInterface;
    open<T>(component: Type<any>, config?: DynamicDrawerConfigInterface): DynamicDialogRef<T>;
    private resolveAppendTarget;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerService, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<DrawerService>;
}

declare const DynamicDrawerConfig: InjectionToken<any>;
declare class DynamicDrawerHost {
    visible: _angular_core.ModelSignal<boolean>;
    cmp: _angular_core.WritableSignal<any>;
    cfg: _angular_core.WritableSignal<any>;
    cmpInputs: _angular_core.WritableSignal<Record<string, unknown>>;
    childInjector: Injector;
    private ref?;
    connect(opts: {
        component: any;
        config?: any;
        parent: Injector;
        ref: DynamicDialogRef;
    }): void;
    handleHide(data?: null): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicDrawerHost, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicDrawerHost, "mt-dynamic-drawer-host", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "connect": { "alias": "connect"; "required": true; }; }, { "visible": "visibleChange"; }, never, never, true, never>;
}

export { DrawerService, DynamicDrawerConfig, DynamicDrawerHost };
export type { DynamicDrawerConfigInterface };
