import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
import { ElementRef, OnInit, OnDestroy } from '@angular/core';
import { NgPopoverRef } from 'ng-overlay-container';
import { Observable } from 'rxjs';
import { AbstractPopoverDirective } from '../popover/abstract.popover.directive';
import { DbxPopoverService } from '../popover/popover.service';
import { FilterSource } from '@dereekb/rxjs';
import { DbxPopoverKey } from '../popover/popover';
import { DbxFilterComponentConfig } from './filter.config';
import * as i0 from "@angular/core";
export interface DbxFilterPopoverComponentConfig<F extends object = object> extends DbxFilterComponentConfig<F> {
    /**
     * Origin to add the popover to.
     */
    readonly origin: ElementRef;
}
export declare const DEFAULT_FILTER_POPOVER_KEY = "filter";
export declare class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentConfig<F>> implements OnInit, OnDestroy {
    private readonly _closeOnChangeSub;
    readonly config: DbxFilterComponentConfig<F>;
    readonly icon: string;
    readonly header: string;
    readonly showCloseButton: boolean;
    readonly closeButtonText: string;
    readonly customizeButtonText: string;
    /**
     * Whether or not to display buttons to toggle between custom and preset filters.
     */
    readonly showSwitchButtons: boolean;
    readonly showPresetSignal: import("@angular/core").WritableSignal<boolean>;
    readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>>;
    readonly configSignal: import("@angular/core").Signal<DbxInjectionComponentConfig<FilterSource<F>> | undefined>;
    static openPopover<F extends object>(popupService: DbxPopoverService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }: DbxFilterPopoverComponentConfig<F>, popoverKey?: DbxPopoverKey): NgPopoverRef;
    ngOnInit(): void;
    ngOnDestroy(): void;
    showPresets(): void;
    showCustom(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxFilterPopoverComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxFilterPopoverComponent<any>, "ng-component", never, {}, {}, never, never, true, never>;
}
