/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ElementRef, Renderer2, NgZone, EventEmitter, SimpleChanges, OnChanges, OnDestroy, ChangeDetectorRef, Injector, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { OutputFormat, HSVA } from './models';
import { KendoDragEvent } from './events/kendo-drag-event';
import { ColorInputComponent } from './color-input.component';
import { SVGIcon } from '@progress/kendo-angular-icons';
import { InputSize } from '../common/models';
import * as i0 from "@angular/core";
/**
 * Represents the Kendo UI ColorGradient component.
 *
 * The ColorGradientComponent lets you select a color by moving a drag handle over a gradient area. You can use it directly or as part of the `kendo-colorpicker`.
 *
 * @example
 * ```html
 * <kendo-colorgradient [(ngModel)]="color"></kendo-colorgradient>
 * ```
 *
 * @remarks
 * Supported children components are: {@link ColorPickerMessages}.
 */
export declare class ColorGradientComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    private host;
    private ngZone;
    private renderer;
    private cdr;
    private localizationService;
    private injector;
    hostClasses: boolean;
    get readonlyAttribute(): boolean;
    get disabledClass(): boolean;
    get gradientId(): string;
    direction: string;
    get hostTabindex(): string;
    get ariaRole(): string;
    get isControlInvalid(): string;
    get isDisabled(): string | undefined;
    /**
     * @hidden
     */
    enterHandler(event: any): void;
    /**
     * @hidden
     */
    escapeHandler(event: any): void;
    /**
     * @hidden
     */
    focusHandler(ev: any): void;
    /**
     * @hidden
     */
    adaptiveMode: boolean;
    /**
     * @hidden
     */
    id: string;
    /**
     * Shows or hides the alpha slider.
     *
     * @default true
     */
    opacity: boolean;
    /**
     * Sets the size of the ColorGradient internal elements. The default value is set by the Kendo theme.
     *
     */
    set size(size: InputSize);
    get size(): InputSize;
    /**
     * Disables the ColorGradient. To disable it in reactive forms, see [Forms Support](https://www.telerik.com/kendo-angular-ui/components/inputs/colorgradient/forms#managing-the-colorgradient-disabled-state-in-reactive-forms).
     *
     * @default false
     */
    disabled: boolean;
    /**
     * Sets the read-only state of the ColorGradient.
     *
     * @default false
     */
    readonly: boolean;
    /**
     * Shows or hides the **Clear color** button.
     *
     * @default false
     */
    clearButton: boolean;
    /**
     * Sets the delay (in milliseconds) before the value changes on handle drag.
     *
     * @default 0
     */
    delay: number;
    /**
     * Sets the value of the selected color.
     */
    set value(value: string);
    get value(): string;
    /**
     * Enables the color contrast tool that checks the contrast ratio of the selected color against a predefined background color. [See example](https://www.telerik.com/kendo-angular-ui/components/inputs/colorgradient/contrast-tool).
     */
    set contrastTool(value: string);
    get contrastTool(): string;
    /**
     * Sets the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
     *
     * @default 0
     */
    set tabindex(value: number);
    get tabindex(): number;
    /**
     * Sets the output format of the ColorGradient. The input value may be in a different format, but it will be parsed into the output format after the component processes it.
     *
     * @default 'rgba'
     */
    format: OutputFormat;
    /**
     * Fires when the user selects a new color..
     */
    valueChange: EventEmitter<string>;
    /**
     * @hidden
     */
    backgroundColor: string;
    /**
     * @hidden
     *
     * Represents the currently selected `hue`, `saturation`, `value`, and `alpha` values.
     * The values are initially set in `ngOnInit` or in `ngOnChanges` and are
     * updated on moving the drag handle or the sliders.
     */
    hsva: BehaviorSubject<HSVA>;
    /**
     * Returns `true` if the component or its content is focused.
     */
    get isFocused(): boolean;
    /**
     * @hidden
     */
    get alphaSliderValue(): number;
    /**
     * Sets the step (in pixels) for moving the gradient drag handle with the arrow keys.
     *
     * @default 5
     */
    gradientSliderStep: number;
    /**
     * Sets the step (in pixels) for moving the gradient drag handle with `Shift+arrow keys`.
     *
     * @default 2
     */
    gradientSliderSmallStep: number;
    /**
     * Controls whether ARIA attributes should be applied to the component.
     * When used within FlatColorPicker, this should be set to false to comply with accessibility guidelines.
     *
     * @default true
     * @hidden
     */
    ariaAttributesEnabled: boolean;
    gradientDragHandle: ElementRef;
    inputs: ColorInputComponent;
    private alphaSlider;
    private gradientWrapper;
    private hsvRectangle;
    /**
     * @hidden
     */
    internalNavigation: boolean;
    /**
     * @hidden
     */
    dropletSlashIcon: SVGIcon;
    private _value;
    private _tabindex;
    private _contrastTool;
    private listeners;
    private hueSliderTouched;
    private alphaSliderTouched;
    private _size;
    private updateValues;
    private changeRequestsSubscription;
    private dynamicRTLSubscription;
    private hsvHandleCoordinates;
    get gradientRect(): ClientRect;
    /**
     * @hidden
     */
    get hsvSliderValueText(): string;
    /**
     * @hidden
     */
    get contrastToolVisible(): boolean;
    /**
     * @hidden
     */
    get innerTabIndex(): number;
    private control;
    constructor(host: ElementRef, ngZone: NgZone, renderer: Renderer2, cdr: ChangeDetectorRef, localizationService: LocalizationService, injector: Injector);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    /**
     * Focuses the component.
     */
    focus(): void;
    /**
     * @hidden
     */
    reset(): void;
    /**
     * @hidden
     */
    handleDragPress(args: KendoDragEvent): void;
    /**
     * @hidden
     */
    onHandleDrag(args: any): void;
    /**
     * @hidden
     */
    onHandleRelease(): void;
    /**
     * @hidden
     */
    onKeyboardAction(args: any): void;
    /**
     * @hidden
     */
    changePosition(position: MouseEvent): void;
    /**
     * @hidden
     */
    handleHueSliderChange(hue: number): void;
    /**
     * @hidden
     */
    handleAlphaSliderChange(alpha: number): void;
    /**
     * @hidden
     */
    handleInputsValueChange(color: string): void;
    /**
     * @hidden
     */
    writeValue(value: string): void;
    /**
     * @hidden
     */
    registerOnChange(fn: any): void;
    /**
     * @hidden
     */
    registerOnTouched(fn: any): void;
    /**
     * @hidden
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * @hidden
     */
    get colorGradientHandleTitle(): string;
    /**
     * @hidden
     */
    get colorGradientHandleAriaLabel(): string;
    /**
     * @hidden
     */
    get hueSliderTitle(): string;
    /**
     * @hidden
     */
    get opacitySliderTitle(): string;
    /**
     * @hidden
     */
    get clearButtonTitle(): string;
    /**
     * @hidden
     * Used by the FloatingLabel to determine if the component is empty.
     */
    isEmpty(): boolean;
    private notifyNgChanged;
    private notifyNgTouched;
    private moveDragHandle;
    private handleValueChange;
    private setDragHandleElementPosition;
    private setAlphaSliderBackground;
    private setHostElementAriaLabel;
    private setBackgroundColor;
    private updateUI;
    private addEventListeners;
    private subscribeChanges;
    private unsubscribeChanges;
    private handleClasses;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorGradientComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ColorGradientComponent, "kendo-colorgradient", ["kendoColorGradient"], { "adaptiveMode": { "alias": "adaptiveMode"; "required": false; }; "id": { "alias": "id"; "required": false; }; "opacity": { "alias": "opacity"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "clearButton": { "alias": "clearButton"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; "value": { "alias": "value"; "required": false; }; "contrastTool": { "alias": "contrastTool"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "format": { "alias": "format"; "required": false; }; "gradientSliderStep": { "alias": "gradientSliderStep"; "required": false; }; "gradientSliderSmallStep": { "alias": "gradientSliderSmallStep"; "required": false; }; "ariaAttributesEnabled": { "alias": "ariaAttributesEnabled"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}
