import { AggregationOption, AggregationOptionStatus } from '@c8y/ngx-components';
import { TimeRangeInterval } from '@c8y/ngx-components/datapoints-export-selector';
import * as i0 from "@angular/core";
export declare class DatapointsTableConfigService {
    /**
     * Determines the interval between two dates.
     *
     * @param dateFrom - The starting date in ISO 8601 string format.
     * @param dateTo - The ending date in ISO 8601 string format.
     * @returns The time range interval unit.
     */
    determineInterval(dateFrom: string, dateTo: string): TimeRangeInterval;
    /**
     * Updates the disabled state of aggregation options based on the current value of the time interval form control.
     *
     * This method:
     * - Retrieves the current date range from the form controls.
     * - Determines the current time interval based on the date range.
     * - Sets the disabled state for each aggregation option based on predefined conditions.
     *
     * The disabled state is stored in the `disabledAggregationOptions` object,
     * where the key is the aggregation value and the value is a boolean indicating whether the option should be disabled.
     *
     * The `disabledConditions` object defines the conditions under which each aggregation option should be disabled.
     *
     * @param dateFrom - The starting date of the range.
     * @param dateTo - The ending date of the range.
     * @param aggregationValuesArr - An array of aggregation options.
     * @returns An object containing the disabled state of each aggregation option.
     */
    updateDisabledStateOfAggregationOptionEntries(dateFrom: string, dateTo: string, aggregationValuesArr: readonly AggregationOption[]): AggregationOptionStatus;
    /**
     * Determines the new aggregation value based on the current value and disabled options.
     *
     * Goal is to switch to the next available aggregation option if the current one is disabled.
     * - If the current option is disabled, sets the control to the first available (non-disabled) option based on the following order:
     *   - If the current value is `DAILY`, it switches to `HOURLY` if it's not disabled, otherwise to `MINUTELY` if `HOURLY` is also disabled.
     *   - If the current value is `HOURLY`, it switches to `MINUTELY` if it's not disabled.
     *   - If all options are disabled, it sets the value to `NONE`.
     *
     * @param currentValue - The current aggregation option.
     * @param disabledOptions - An object containing disabled options.
     * @returns The new aggregation option.
     */
    determineNewAggregationValue(currentValue: AggregationOption, disabledOptions: AggregationOptionStatus): AggregationOption;
    /**
     * Determines the aggregation value based on the provided interval.
     *
     * @param interval - The time range interval.
     * @returns The corresponding aggregation value.
     */
    determineAggregationValue(interval: TimeRangeInterval): AggregationOption;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatapointsTableConfigService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DatapointsTableConfigService>;
}
//# sourceMappingURL=datapoints-table-config.service.d.ts.map