import { Observable } from 'rxjs';
import { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective, ClickableFilterPresetOrPartialPreset } from '@dereekb/dbx-core';
import { Maybe } from '@dereekb/util';
import { FilterWithPreset } from '@dereekb/rxjs';
import * as i0 from "@angular/core";
export declare abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> {
    readonly filterSourceDirective: FilterSourceDirective<any>;
    readonly presetSelected: import("@angular/core").OutputEmitterRef<ClickableFilterPresetOrPartialPreset<F>>;
    readonly presets: import("@angular/core").InputSignal<ClickableFilterPresetOrPartialPreset<F>[]>;
    readonly presets$: Observable<ClickableFilterPresetOrPartialPreset<F>[]>;
    readonly selected$: Observable<Maybe<F>>;
    readonly presetsWithPresetStringOnly$: Observable<ClickableFilterPreset<F>[]>;
    readonly selectedPresetString$: Observable<Maybe<string>>;
    readonly presetAnchorsPairs$: Observable<['preset' | 'partialPreset', ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink][]>;
    readonly presetAnchors$: Observable<ClickableAnchorLink[]>;
    readonly firstSelectedAnchorPair$: Observable<["preset" | "partialPreset", ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink] | undefined>;
    readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>>;
    readonly presetAnchorsSignal: import("@angular/core").Signal<ClickableAnchorLink[]>;
    readonly selectedPresetSignal: import("@angular/core").Signal<Maybe<ClickableFilterPreset<F, string>>>;
    selectPreset(preset: ClickableFilterPresetOrPartialPreset<F>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxPresetFilterMenuDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxPresetFilterMenuDirective<any>, never, never, { "presets": { "alias": "presets"; "required": false; "isSignal": true; }; }, { "presetSelected": "presetSelected"; }, never, never, false, never>;
}
