import { EventEmitter, OnInit } from '@angular/core';
import { CompositeFilterDescriptor, FilterFieldInfo } from '@memberjunction/ng-filter-builder';
import * as i0 from "@angular/core";
/**
 * FilterDialogComponent - Modal dialog for editing filters
 *
 * Provides a full-width editing experience for the filter builder,
 * suitable for complex filter expressions.
 */
export declare class FilterDialogComponent implements OnInit {
    /**
     * Whether the dialog is open
     */
    isOpen: boolean;
    /**
     * Available fields to filter on
     */
    fields: FilterFieldInfo[];
    /**
     * Current filter state
     */
    filter: CompositeFilterDescriptor;
    /**
     * Whether the filter builder is disabled (read-only mode)
     */
    disabled: boolean;
    /**
     * Emitted when the dialog should close
     */
    close: EventEmitter<void>;
    /**
     * Emitted when the filter is applied
     */
    apply: EventEmitter<CompositeFilterDescriptor>;
    /**
     * Internal working copy of the filter
     */
    workingFilter: CompositeFilterDescriptor;
    /**
     * Handle Escape key to close dialog
     */
    handleEscape(): void;
    ngOnInit(): void;
    /**
     * Initialize working filter when input changes
     */
    ngOnChanges(): void;
    /**
     * Create a working copy of the filter
     */
    private initializeWorkingFilter;
    /**
     * Handle filter changes from the filter builder
     */
    onFilterChange(filter: CompositeFilterDescriptor): void;
    /**
     * Apply the filter and close
     */
    onApply(): void;
    /**
     * Cancel and close without saving
     */
    onCancel(): void;
    /**
     * Clear all filters
     */
    onClear(): void;
    /**
     * Get filter count for display
     */
    getFilterCount(): number;
    /**
     * Count filters recursively
     */
    private countFilters;
    static ɵfac: i0.ɵɵFactoryDeclaration<FilterDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FilterDialogComponent, "mj-filter-dialog", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "close": "close"; "apply": "apply"; }, never, never, false, never>;
}
//# sourceMappingURL=filter-dialog.component.d.ts.map