import { Observable } from 'rxjs';
import { OnInit, OnDestroy, ElementRef } from '@angular/core';
import { NgPopoverRef } from 'ng-overlay-container';
import { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';
import { IsEqualFunction, IsModifiedFunction } from '@dereekb/rxjs';
import { type Maybe } from '@dereekb/util';
import * as i0 from "@angular/core";
export interface DbxActionPopoverFunctionParams {
    readonly origin: ElementRef;
}
export type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;
/**
 * Action directive that is used to trigger/display a popover, then watches that popover for a value.
 */
export declare class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {
    readonly elementRef: ElementRef<any>;
    readonly dbxActionPopover: import("@angular/core").InputSignal<DbxActionPopoverFunction<T>>;
    readonly dbxActionPopoverIsModified: import("@angular/core").InputSignal<Maybe<IsModifiedFunction>>;
    readonly dbxActionPopoverIsEqual: import("@angular/core").InputSignal<Maybe<IsEqualFunction>>;
    constructor();
    protected _getDataFromPopover(): Observable<Maybe<T>>;
    protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxActionPopoverDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DbxActionPopoverDirective<any>, "[dbxActionPopover]", ["dbxActionPopover"], { "dbxActionPopover": { "alias": "dbxActionPopover"; "required": true; "isSignal": true; }; "dbxActionPopoverIsModified": { "alias": "dbxActionPopoverIsModified"; "required": false; "isSignal": true; }; "dbxActionPopoverIsEqual": { "alias": "dbxActionPopoverIsEqual"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
