/**
 * TimeSliderController - directive controller
 *
 * @param {import('ngeo/misc/WMSTime').WMSTime} ngeoWMSTime WMSTime service.
 * @param {import('ngeo/misc/debounce').miscDebounce<function(): void>} ngeoDebounce ngeo Debounce factory.
 * @class
 * @hidden
 * @ngdoc controller
 * @ngname gmfTimeSliderController
 */
export function Controller(ngeoWMSTime: import("ngeo/misc/WMSTime").WMSTime, ngeoDebounce: import("ngeo/misc/debounce").miscDebounce<() => void>): void;
export class Controller {
    /**
     * TimeSliderController - directive controller
     *
     * @param {import('ngeo/misc/WMSTime').WMSTime} ngeoWMSTime WMSTime service.
     * @param {import('ngeo/misc/debounce').miscDebounce<function(): void>} ngeoDebounce ngeo Debounce factory.
     * @class
     * @hidden
     * @ngdoc controller
     * @ngname gmfTimeSliderController
     */
    constructor(ngeoWMSTime: import("ngeo/misc/WMSTime").WMSTime, ngeoDebounce: import("ngeo/misc/debounce").miscDebounce<() => void>);
    /**
     * @type {import('ngeo/misc/WMSTime').WMSTime}
     */
    ngeoWMSTime_: import("ngeo/misc/WMSTime").WMSTime;
    /**
     * @type {import('ngeo/misc/debounce').miscDebounce<function(): void>}
     */
    ngeoDebounce_: import("ngeo/misc/debounce").miscDebounce<() => void>;
    /**
     * Function called after date(s) changed/selected
     *
     * @type {function(unknown): unknown}
     */
    onDateSelected: (arg0: unknown) => unknown;
    /**
     * A time object for directive initialization
     *
     * @type {?import('ngeo/datasource/OGC').TimeProperty}
     */
    time: import("ngeo/datasource/OGC").TimeProperty | null;
    /**
     * If the component is used to select a date range
     *
     * @type {boolean}
     */
    isModeRange: boolean;
    /**
     * Minimal value of the slider (time in ms)
     *
     * @type {number}
     */
    minValue: number;
    /**
     * Maximal value of the slider (time in ms)
     *
     * @type {number}
     */
    maxValue: number;
    /**
     * Used when WMS time object has a property 'values' instead of an interval
     *
     * @type {?number[]}
     */
    timeValueList: number[] | null;
    /**
     * Default Slider options (used by ui-slider directive)
     *
     * @type {?{
     *  range : boolean,
     *  min : number,
     *  max : number
     * }}
     */
    sliderOptions: {
        range: boolean;
        min: number;
        max: number;
    } | null;
    /**
     * Model for the ui-slider directive (date in ms format)
     *
     * @type {number[]|number}
     */
    dates: number[] | number;
    /**
     * Initialize the controller.
     */
    init(): void;
    /**
     * TimeSliderController.prototype.getTimeValueList_ - Get a list of time value instead
     * of using the wmstime interval as a list of possibles values
     *
     * @returns {number[]}  - List of timestamp representing possible values
     */
    getTimeValueList_(): number[];
    private getClosestValue_;
    /**
     * Format and localize time regarding a resolution.
     *
     * @param {number} time (in ms format) timestamp to format and localize.
     * @returns {string} Localized date string regarding the resolution.
     */
    getLocalizedDate(time: number): string;
}
export namespace Controller {
    let $inject: string[];
}
export default myModule;
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
import angular from 'angular';
