import * as i0 from '@angular/core';
import { InjectionToken, Type } from '@angular/core';

declare class SideWindowContent {
    static ɵfac: i0.ɵɵFactoryDeclaration<SideWindowContent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SideWindowContent, "kl-side-window-content", never, {}, {}, never, ["*"], true, never>;
}

type SideWindowAfterCloseTrigger = string | Record<string, any>;
type SideWindowAfterCloseTriggerFn = (trigger: SideWindowAfterCloseTrigger) => void;
declare const SIDE_WINDOW_CONFIG: InjectionToken<unknown>;
declare const SIDE_WINDOW_DATA: InjectionToken<unknown>;
declare const SIDE_WINDOW_APP_REF: InjectionToken<unknown>;
declare const SIDE_WINDOW_AFTER_CLOSE_TRIGGER: InjectionToken<SideWindowAfterCloseTriggerFn>;
interface SideWindowConfig {
    data?: any;
    afterClosed?: {
        trigger: SideWindowAfterCloseTrigger;
        callback: (trigger: any) => void;
    };
}
declare class SideWindow {
    private readonly appRef;
    private readonly injector;
    private generateElementId;
    open(component: Type<any>, config?: SideWindowConfig): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SideWindow, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SideWindow>;
}

declare const SIDE_WINDOW_REF_TOKEN: InjectionToken<unknown>;
declare class SideWindowRef {
    private readonly appRef;
    private readonly componentRef;
    private readonly afterCloseTrigger;
    dismiss(afterCloseTrigger?: SideWindowAfterCloseTrigger): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SideWindowRef, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SideWindowRef>;
}

export { SIDE_WINDOW_AFTER_CLOSE_TRIGGER, SIDE_WINDOW_APP_REF, SIDE_WINDOW_CONFIG, SIDE_WINDOW_DATA, SIDE_WINDOW_REF_TOKEN, SideWindow, SideWindowContent, SideWindowRef };
export type { SideWindowAfterCloseTrigger, SideWindowAfterCloseTriggerFn, SideWindowConfig };
