import { ComponentType } from '@angular/cdk/overlay';
import { InjectionToken, OnDestroy, TemplateRef } from '@angular/core';
import { KbqActionsPanelConfig } from './actions-panel-config';
import { KbqActionsPanelRef } from './actions-panel-ref';
import * as i0 from "@angular/core";
/** Injection token that can be used to access the data that was passed in to actions panel. */
export declare const KBQ_ACTIONS_PANEL_DATA: InjectionToken<unknown>;
/**
 * Context for actions panel template.
 */
export type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {
    /**
     * Data passed to actions panel.
     *
     * Example:
     *
     * ```html
     * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>
     * ````
     */
    $implicit?: D | null;
    /**
     * Data passed to actions panel.
     *
     * Example:
     *
     * ```html
     * <ng-template #actionsPanel let-data="data">{{ data.KEY }}</ng-template>
     * ````
     */
    data?: D | null;
    /**
     * Opened actions panel reference.
     *
     * Example:
     *
     * ```html
     * <ng-template #actionsPanel let-actionsPanelRef="actionsPanelRef">
     *   <button (click)="actionsPanelRef.close()">close</button>
     * </ng-template>
     * ````
     */
    actionsPanelRef: KbqActionsPanelRef<T, R>;
};
/**
 * Selector for actions panel overlay.
 *
 * @docs-private
 */
export declare const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = "kbq-actions-panel-overlay";
/**
 * Service for opening actions panel.
 */
export declare class KbqActionsPanel implements OnDestroy {
    private readonly injector;
    private readonly overlay;
    private readonly dialog;
    private readonly defaultConfig;
    private readonly resizeObserver;
    /** The reference to the currently opened actions panel. */
    private openedActionsPanelRef;
    ngOnDestroy(): void;
    /**
     * Opens actions panel.
     *
     * @param componentOrTemplateRef Component to be opened into the actions panel.
     * @param config Additional configuration options for the actions panel.
     * @returns A reference to the opened actions panel.
     */
    open<T, D = unknown, R = unknown>(component: ComponentType<T>, config?: KbqActionsPanelConfig<D>): KbqActionsPanelRef<T, R>;
    /**
     * Opens actions panel.
     *
     * @param template TemplateRef to be used as the content.
     * @param config Additional configuration options for the actions panel.
     * @returns A reference to the opened actions panel.
     */
    open<T, D = unknown, R = unknown>(template: TemplateRef<T>, config?: KbqActionsPanelConfig<D>): KbqActionsPanelRef<T, R>;
    /** Closes the currently opened actions panel. */
    close<R>(result?: R): void;
    private openDialog;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqActionsPanel, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<KbqActionsPanel>;
}
