import { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, InjectionToken, TemplateRef, Type } from '@angular/core';
import { KbqButton } from '@koobiq/components/button';
import { DateAdapter, KbqPopUp, KbqPopUpTrigger, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
import { Subscription } from 'rxjs';
import { KbqNotificationCenterService } from './notification-center.service';
import * as i0 from "@angular/core";
/**default configuration of notification-center */
export declare const KBQ_NOTIFICATION_CENTER_DEFAULT_CONFIGURATION: {
    notifications: string;
    remove: string;
    doNotDisturb: string;
    showPopUpNotifications: string;
    noNotifications: string;
    failedToLoadNotifications: string;
    repeat: string;
};
/** Injection Token for providing configuration of notification-center */
export declare const KBQ_NOTIFICATION_CENTER_CONFIGURATION: InjectionToken<unknown>;
/** @docs-private */
export declare const KBQ_NOTIFICATION_CENTER_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
/** @docs-private */
export declare function kbqNotificationCenterScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy;
/** @docs-private */
export declare const KBQ_NOTIFICATION_CENTER_SCROLL_STRATEGY_FACTORY_PROVIDER: {
    provide: InjectionToken<() => ScrollStrategy>;
    deps: (typeof Overlay)[];
    useFactory: typeof kbqNotificationCenterScrollStrategyFactory;
};
/** @docs-private */
export declare class KbqNotificationCenterComponent extends KbqPopUp implements AfterViewInit {
    /** @docs-private */
    protected readonly changeDetectorRef: ChangeDetectorRef;
    /** @docs-private */
    protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null;
    /** @docs-private */
    protected readonly dateAdapter: DateAdapter<any>;
    /** @docs-private */
    protected readonly service: KbqNotificationCenterService;
    private scrollContainer;
    readonly externalConfiguration: unknown;
    configuration: any;
    /** @docs-private */
    protected popoverMode: boolean;
    /** @docs-private */
    protected isTopOverflow: boolean;
    /** @docs-private */
    protected isBottomOverflow: boolean;
    /** localized data
     * @docs-private */
    get localeData(): any;
    /** @docs-private */
    prefix: string;
    /** @docs-private */
    trigger: KbqNotificationCenterTrigger;
    /** @docs-private */
    isTrapFocus: boolean;
    switcher: KbqButton;
    get popoverHeight(): string;
    set popoverHeight(value: string);
    private _popoverHeight;
    constructor();
    ngAfterViewInit(): void;
    /** @docs-private */
    updateClassMap(placement: string, customClass: string, size: PopUpSizes): void;
    /** @docs-private */
    updateTrapFocus(isTrapFocus: boolean): void;
    /** @docs-private */
    escapeHandler(): void;
    protected checkOverflow: () => void;
    private updateLocaleParams;
    private initDefaultParams;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNotificationCenterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqNotificationCenterComponent, "kbq-notification-center", never, {}, {}, never, never, true, never>;
}
export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNotificationCenterComponent> implements AfterContentInit {
    /** @docs-private */
    protected scrollStrategy: () => ScrollStrategy;
    /** @docs-private */
    protected readonly service: KbqNotificationCenterService;
    /** @docs-private */
    arrow: boolean;
    /** @docs-private */
    customClass: string;
    /** @docs-private */
    private hasBackdrop;
    /** @docs-private */
    private size;
    /** @docs-private */
    content: string | TemplateRef<any>;
    /** @docs-private */
    header: string | TemplateRef<any>;
    /** @docs-private */
    footer: string | TemplateRef<any>;
    /** Number of unread notifications */
    get unreadItemsCounter(): import("rxjs").Observable<string>;
    /** Placement of popUp */
    placement: PopUpPlacements;
    /** Class that will be used in the background */
    backdropClass: string;
    /** Class that will be used in the panel */
    panelClass: string;
    /** Offset of popUp */
    offset: number | null;
    /** Use popover or not */
    get popoverMode(): boolean;
    set popoverMode(value: boolean);
    private _popoverMode;
    /** Set height of popover. Default is calc(100vh - 48px). 48px - height of navbar */
    get popoverHeight(): string;
    set popoverHeight(value: string);
    private _popoverHeight;
    /** Whether the trigger is disabled. */
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * Additionally positions the element relative to the window side (Top, Right, Bottom and Left).
     * If container is specified, the positioning will be relative to it.
     * */
    stickToWindow: PopUpPlacements.Top | PopUpPlacements.Right | PopUpPlacements.Bottom | PopUpPlacements.Left | string;
    /** Container for additional positioning, used with stickToWindow */
    container: HTMLElement;
    /** @docs-private */
    get hasClickTrigger(): boolean;
    /** Emits a change event whenever the placement state changes. */
    readonly placementChange: EventEmitter<any>;
    /** Emits a change event whenever the visible state changes. */
    readonly visibleChange: EventEmitter<boolean>;
    /** @docs-private */
    trigger: string;
    /** @docs-private */
    protected originSelector: string;
    /** @docs-private */
    protected get overlayConfig(): OverlayConfig;
    /** @docs-private */
    protected preventClosingByInnerScrollSubscription: Subscription;
    constructor();
    ngAfterContentInit(): void;
    /** @docs-private */
    updateData(): void;
    /** Updates the current position.
     *
     * @docs-private */
    updatePosition(reapplyPosition?: boolean): void;
    /** @docs-private */
    getOverlayHandleComponentType(): Type<KbqNotificationCenterComponent>;
    /** @docs-private */
    updateClassMap(newPlacement?: string): void;
    /** @docs-private */
    closingActions(): import("rxjs").Observable<void | import("@angular/cdk/scrolling").CdkScrollable | MouseEvent>;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqNotificationCenterTrigger, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNotificationCenterTrigger, "[kbqNotificationCenterTrigger]", ["kbqNotificationCenterTrigger"], { "placement": { "alias": "kbqNotificationCenterPlacement"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "kbqNotificationCenterPanelClass"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "popoverMode": { "alias": "popoverMode"; "required": false; }; "popoverHeight": { "alias": "popoverHeight"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "stickToWindow": { "alias": "stickToWindow"; "required": false; }; "container": { "alias": "container"; "required": false; }; }, { "placementChange": "kbqPlacementChange"; "visibleChange": "kbqVisibleChange"; }, never, never, true, never>;
    static ngAcceptInputType_offset: unknown;
    static ngAcceptInputType_popoverMode: unknown;
    static ngAcceptInputType_disabled: unknown;
}
