import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';
import { SliderTickMark } from '@fundamental-ngx/core/slider';
import { BaseInput } from '@fundamental-ngx/platform/shared';
import * as i1 from '@fundamental-ngx/core/content-density';

type SliderCustomValue = Omit<SliderTickMark, 'position'>;
type SliderControlValue = number | number[] | SliderTickMark | SliderTickMark[];
/** Switch change event instance */
declare class SliderChangeEvent<T extends SliderControlValue = any> {
    /** The source Slider of the event. */
    source: SliderComponent;
    /** The new `payload` value of the slider. */
    payload: T;
}
declare class SliderComponent extends BaseInput {
    /** User's custom classes */
    class: string;
    /** Minimum value. */
    min: number;
    /** Maximum value. */
    max: number;
    /** Step value. */
    step: number;
    /** Jump value. */
    jump: number;
    /** Put a label on every N-th tickmark. */
    tickmarksBetweenLabels: number;
    /**
     * Slider mode.
     * Options include: 'single' | 'range'
     * The default is set to 'single'
     */
    mode: 'single' | 'range';
    /** Toggles the visibility of tick marks. */
    showTicks: boolean;
    /** Toggles the visibility of tick mark labels. Must be used in conjunction with 'showTicks' */
    showTicksLabels: boolean;
    /** Array of custom values to use for Slider. */
    customValues: SliderCustomValue[];
    /** Tooltip can be two types, 'readonly' to display value and 'editable' to make the ability to set and display value. */
    tooltipMode: 'readonly' | 'editable';
    /** Hides display of colored progress bar. */
    hideProgressBar: boolean;
    /** Whether the slider should be rendered vertically. */
    vertical: boolean;
    /**
     * Event fired when the state of the slider changes.
     * *$event* can be used to retrieve the new state of the slider.
     */
    readonly sliderChange: EventEmitter<SliderChangeEvent<any>>;
    /** value for slider control */
    set value(selectValue: any);
    get value(): any;
    /** @hidden */
    _onModelChange(modelValue: SliderControlValue): void;
    /** @hidden
     * Method to emit change event
     */
    private _emitChangeEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "fdp-slider", never, { "class": { "alias": "class"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "jump": { "alias": "jump"; "required": false; }; "tickmarksBetweenLabels": { "alias": "tickmarksBetweenLabels"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "showTicks": { "alias": "showTicks"; "required": false; }; "showTicksLabels": { "alias": "showTicksLabels"; "required": false; }; "customValues": { "alias": "customValues"; "required": false; }; "tooltipMode": { "alias": "tooltipMode"; "required": false; }; "hideProgressBar": { "alias": "hideProgressBar"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "sliderChange": "sliderChange"; }, never, never, true, never>;
}

declare class PlatformSliderModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PlatformSliderModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PlatformSliderModule, never, [typeof i1.ContentDensityModule, typeof SliderComponent], [typeof SliderComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PlatformSliderModule>;
}

export { PlatformSliderModule, SliderChangeEvent, SliderComponent };
export type { SliderControlValue, SliderCustomValue };
