import { Observable } from 'rxjs';
import { OnDestroy } from '@angular/core';
import { DbxValueListItem } from '../list.view.value';
import { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';
import { MaybeObservableOrValue } from '@dereekb/rxjs';
import { DbxValueListItemModifier } from '../list.view.value.modifier';
import * as i0 from "@angular/core";
/**
 * DbxValueListViewModifier implementation
 */
export declare class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {
    readonly inputModifiers: import("@angular/core").InputSignalWithTransform<Maybe<ArrayOrValue<Modifier<I>>>, Maybe<"" | ArrayOrValue<Modifier<I>>>>;
    private readonly _additionalModifiers;
    readonly modifiers$: Observable<Map<string, Modifier<I>>>;
    ngOnDestroy(): void;
    addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;
    removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxValueListItemModifierDirective<any, any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DbxValueListItemModifierDirective<any, any>, "dbxListItemModifier,[dbxListItemModifier]", never, { "inputModifiers": { "alias": "dbxListItemModifier"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
 * Abstract directive used for managing modifyers for a DbxValueListView.
 */
export declare abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnDestroy {
    readonly dbxValueListItemModifier: DbxValueListItemModifier<T, I>;
    private _currentLinkedModifiers;
    private readonly _modifiers;
    readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>>;
    private readonly _modifiersSub;
    ngOnDestroy(): void;
    setModifiers(modifiers: MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>): void;
    private _linkModifiers;
    private _unlinkModifiers;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxValueListItemModifierDirective<any, any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxValueListItemModifierDirective<any, any>, never, never, {}, {}, never, never, false, never>;
}
