/*!
 * Copyright 2019 VMware, Inc.
 * SPDX-License-Identifier: BSD-2-Clause
 */
import { OnInit } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { ClrDatagridFilter } from '@clr/angular';
import { SubscriptionTracker } from '../../common/subscription/subscription-tracker';
import { NumberWithUnitFormInputComponent } from '../../form';
import { Unit } from '../../utils/unit/unit';
import { DatagridFilter, FilterConfig, FilterRendererSpec } from './datagrid-filter';
import * as i0 from "@angular/core";
/**
 * The type of value that goes in the {@link DatagridNumericFilterConfig}.
 */
export declare type DatagridNumericFilterValue = [number, number];
/**
 * Numeric filter UI widget has only single configuration. So there are no properties in addition to FilterConfig
 */
export interface DatagridNumericFilterConfig extends FilterConfig<DatagridNumericFilterValue> {
    unit?: Unit;
    unitOptions?: Unit[];
}
export declare class DatagridNumericFilterComponent extends DatagridFilter<DatagridNumericFilterValue, DatagridNumericFilterConfig> implements OnInit {
    private filterContainer;
    maxNumberLength: number;
    fromInput: NumberWithUnitFormInputComponent;
    toInput: NumberWithUnitFormInputComponent;
    /**
     * Options for the select input of units
     */
    private _unitOptions;
    set unitOptions(val: Unit[]);
    get unitOptions(): Unit[];
    /**
     * Base unit to which selected units are converted
     */
    private _unit;
    set unit(val: Unit);
    get unit(): Unit;
    formGroup: FormGroup<{
        from: FormControl<number>;
        to: FormControl<number>;
    }>;
    constructor(filterContainer: ClrDatagridFilter, subTracker: SubscriptionTracker);
    protected onBeforeSetConfig(config: DatagridNumericFilterConfig): void;
    setValue(values: DatagridNumericFilterValue): void;
    getValue(): string;
    isActive(): boolean;
    close(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatagridNumericFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatagridNumericFilterComponent, "vcd-dg-numeric-filter", never, { "unitOptions": "unitOptions"; "unit": "unit"; }, {}, never, never, false, never>;
}
/**
 * Creates a {@link FilterRendererSpec} with the given config.
 * @param value the default value that should go in this numeric filter.
 * @param unit initial value for unit input to be selected
 * @param unitOptions Select dropdown options for unit input
 */
export declare function DatagridNumericFilter(value?: DatagridNumericFilterValue, unitOptions?: Unit[], unit?: Unit): FilterRendererSpec<DatagridNumericFilterConfig>;
