import { Observable } from 'rxjs';
import { OnInit, OnDestroy, ElementRef } from '@angular/core';
import { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';
import { IsEqualFunction, IsModifiedFunction } from '@dereekb/rxjs';
import { type Maybe } from '@dereekb/util';
import { MatDialogRef } from '@angular/material/dialog';
import * as i0 from "@angular/core";
export type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;
/**
 * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.
 */
export declare class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {
    readonly elementRef: ElementRef<any>;
    readonly dbxActionDialog: import("@angular/core").InputSignal<DbxActionDialogFunction<T>>;
    readonly dbxActionDialogIsModified: import("@angular/core").InputSignal<Maybe<IsModifiedFunction>>;
    readonly dbxActionDialogIsEqual: import("@angular/core").InputSignal<Maybe<IsEqualFunction>>;
    constructor();
    protected _getDataFromDialog(): Observable<Maybe<T>>;
    protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxActionDialogDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DbxActionDialogDirective<any>, "[dbxActionDialog]", ["dbxActionDialog"], { "dbxActionDialog": { "alias": "dbxActionDialog"; "required": true; "isSignal": true; }; "dbxActionDialogIsModified": { "alias": "dbxActionDialogIsModified"; "required": false; "isSignal": true; }; "dbxActionDialogIsEqual": { "alias": "dbxActionDialogIsEqual"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
