import { OnInit } from '@angular/core';
import { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';
import { type Maybe } from '@dereekb/util';
import { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';
import { DbxActionSnackbarService } from './action.snackbar.service';
import { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';
import * as i0 from "@angular/core";
/**
 * Action directive that displays a snackbar when the action context hits a certain state.
 */
export declare class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {
    readonly source: DbxActionContextStoreSourceInstance<T, O>;
    readonly dbxActionSnackbarService: DbxActionSnackbarService<any>;
    readonly dbxActionSnackbarDefault: import("@angular/core").InputSignal<Maybe<string>>;
    readonly dbxActionSnackbarUndo: import("@angular/core").InputSignal<Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>>;
    readonly dbxActionSnackbar: import("@angular/core").InputSignalWithTransform<Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>, "" | Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>>;
    ngOnInit(): void;
    protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>>;
    protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxActionSnackbarDirective<any, any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DbxActionSnackbarDirective<any, any>, "[dbxActionSnackbar]", never, { "dbxActionSnackbarDefault": { "alias": "dbxActionSnackbarDefault"; "required": false; "isSignal": true; }; "dbxActionSnackbarUndo": { "alias": "dbxActionSnackbarUndo"; "required": false; "isSignal": true; }; "dbxActionSnackbar": { "alias": "dbxActionSnackbar"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
