/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, Renderer2, SimpleChanges } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { InputFillMode, InputRounded, InputSize } from '../common/models';
import { SignatureCloseEvent, SignatureOpenEvent } from './events';
import { SVGIcon } from '@progress/kendo-svg-icons';
import * as i0 from "@angular/core";
/**
 * Represents the [Kendo UI Signature component for Angular](https://www.telerik.com/kendo-angular-ui/components/inputs/signature).
 *
 * Use the Signature to let users add a hand-drawn signature to forms.
 *
 * @example
 * ```html
 * <kendo-signature [(ngModel)]="signatureValue"></kendo-signature>
 * ```
 *
 * @remarks
 * Supported children components are: {@link SignatureCustomMessagesComponent}.
 */
export declare class SignatureComponent implements ControlValueAccessor {
    private element;
    private renderer;
    private ngZone;
    private cd;
    localization: LocalizationService;
    private cdr;
    staticHostClasses: boolean;
    /**
     * @hidden
     */
    focusableId: string;
    direction: string;
    /**
     * Sets the read-only state of the Signature.
     *
     * Set to `true` to prevent editing.
     *
     * @default false
     */
    readonly: boolean;
    /**
     * Sets the disabled state of the Signature.
     *
     * Set to `true` to disable the component and prevent any user interaction.
     * To disable the component in reactive forms, see [Managing the Signature Disabled State in Reactive Forms](https://www.telerik.com/kendo-angular-ui/components/inputs/signature/forms#managing-the-signature-disabled-state-in-reactive-forms).
     *
     * @default false
     */
    disabled: boolean;
    /**
     * Sets the width of the Signature in pixels.
     *
     * You can also set the width using inline styles or CSS.
     */
    width: number;
    /**
     * Sets the height of the Signature in pixels.
     *
     * You can also set the height using inline styles or CSS.
     */
    height: number;
    /**
     * Gets or sets the value of the Signature.
     *
     * The value is a Base64-encoded PNG image.
     */
    set value(value: string);
    get value(): string;
    /**
     * @hidden
     */
    svgIcon(name: string): SVGIcon;
    /**
     * Specifies 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 padding of the Signature internal controls
     * ([ee example](https://www.telerik.com/kendo-angular-ui/components/inputs/signature/appearance#size)). The default value is set by the Kendo theme.
     */
    size: InputSize;
    /**
     * Sets the border radius of the Signature
     * ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/signature/appearance#rounded-corners)). The default value is set by the Kendo theme.
     */
    rounded: InputRounded;
    /**
     * Sets the background and border styles of the Signature
     * ([see example](https://www.telerik.com/kendo-angular-ui/components/inputs/signature/appearance#fill-mode)). The default value is set by the Kendo theme.
     */
    fillMode: InputFillMode;
    /**
     * Sets the stroke color of the Signature.
     *
     * Accepts CSS color names and hex values.
     * The default value is determined by the theme `$kendo-input-text` variable.
     */
    color: any;
    /**
     * Sets the background color of the Signature.
     *
     * Accepts CSS color names and hex values.
     * The default value is determined by the theme `$kendo-input-bg` variable.
     */
    backgroundColor: any;
    /**
     * Sets the stroke width of the Signature.
     *
     * @default 1
     */
    strokeWidth: number;
    /**
     * When set to `true`, smooths out signature lines.
     *
     * @default false
     */
    smooth: boolean;
    /**
     * When set to `true`, allows the Signature to be maximized.
     *
     * @default true
     */
    maximizable: boolean;
    /**
     * @hidden
     */
    maximized: boolean;
    /**
     * Sets the scale factor for the popup.
     *
     * The Signature width and height are multiplied by this value when showing the popup.
     *
     * @default 3
     */
    popupScale: number;
    /**
     * Sets the scale factor for the exported image.
     *
     * The Signature width and height are multiplied by this value when converting the signature to an image.
     *
     * @default 2
     */
    exportScale: number;
    /**
     * @hidden
     */
    parentLocalization: LocalizationService;
    /**
     * When set to `true`, hides the dotted line in the background.
     *
     * @default false
     */
    hideLine: boolean;
    /**
     * Fires when the signature value changes.
     */
    valueChange: EventEmitter<string>;
    /**
     * Fires before the popup opens.
     *
     * This event is preventable. If you cancel it, the popup stays closed.
     */
    open: EventEmitter<SignatureOpenEvent>;
    /**
     * Fires before the popup closes.
     *
     * This event is preventable. If you cancel it, the popup stays open.
     */
    close: EventEmitter<SignatureCloseEvent>;
    /**
     * Fires when the Signature receives focus.
     */
    onFocus: EventEmitter<any>;
    /**
     * Fires when the Signature loses focus.
     */
    onBlur: EventEmitter<any>;
    /**
     * @hidden
     */
    minimize: EventEmitter<void>;
    canvas: ElementRef;
    minimizeButton: ElementRef;
    maximizeButton: ElementRef;
    /**
     * Indicates if the Signature wrapper is focused.
     */
    isFocused: boolean;
    /**
     * Indicates if the Signature popup is open.
     */
    isOpen: boolean;
    /**
     * @hidden
     */
    get isEmpty(): boolean;
    /**
     * @hidden
     */
    get canvasLabel(): string;
    /**
     * @hidden
     */
    get clearTitle(): string;
    /**
     * @hidden
     */
    get minimizeTitle(): string;
    /**
     * @hidden
     */
    get maximizeTitle(): string;
    /**
     * @hidden
     */
    get baseWidth(): number;
    /**
     * @hidden
     */
    get baseHeight(): number;
    /**
     * @hidden
     */
    get popupWidth(): number;
    /**
     * @hidden
     */
    get popupHeight(): number;
    /**
     * @hidden
     */
    isDrawing: boolean;
    /**
     * @hidden
     */
    get showMaximize(): boolean;
    /**
     * @hidden
     */
    get showMinimize(): boolean;
    /**
     * @hidden
     */
    get showClear(): boolean;
    /**
     * @hidden
     */
    private get focused();
    private set focused(value);
    private get options();
    private notifyNgTouched;
    private notifyNgChanged;
    private instance;
    private _value;
    private _tabindex;
    private subscriptions;
    private unsubscribe;
    private hostClasses;
    constructor(element: ElementRef, renderer: Renderer2, ngZone: NgZone, cd: ChangeDetectorRef, localization: LocalizationService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    onClear(): void;
    /**
     * @hidden
     */
    onValueChange(): Promise<void>;
    /**
     * @hidden
     */
    onDialogValueChange(value: string): void;
    /**
     * @hidden
     */
    onDialogClick(e: any): void;
    /**
     * @hidden
     */
    onDialogKeydown(e: any): void;
    /**
     * @hidden
     */
    onDialogClose(): void;
    /**
     * Clears the value of the Signature.
     */
    reset(): void;
    /**
     * Toggles the popup of the Signature.
     *
     * Does not trigger the `open` and `close` events.
     *
     * @param open Optional. Set to `true` to open or `false` to close the popup.
     */
    toggle(open?: boolean): void;
    /**
     * @hidden
     */
    onMaximize(): Promise<void>;
    /**
     * @hidden
     */
    onMinimize(): void;
    private applyHostClasses;
    private readThemeColors;
    /**
     * Focuses the Signature wrapper container.
     */
    focus(): void;
    /**
     * @hidden
     */
    onWrapperFocus(): void;
    /**
     * Blurs the Signature.
     */
    blur(): void;
    /**
     * @hidden
     */
    onWrapperBlur(): void;
    /**
     * @hidden
     */
    onWrapperClick(_event: MouseEvent): void;
    /**
     * @hidden
     */
    writeValue(value: string): void;
    /**
     * @hidden
     */
    registerOnChange(fn: any): void;
    /**
     * @hidden
     */
    registerOnTouched(fn: any): void;
    /**
     * @hidden
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * @hidden
     */
    popupValue: any;
    private onDraw;
    private onDrawEnd;
    private addEventListeners;
    private getMessage;
    static ɵfac: i0.ɵɵFactoryDeclaration<SignatureComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SignatureComponent, "kendo-signature", ["kendoSignature"], { "focusableId": { "alias": "focusableId"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "value": { "alias": "value"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "size": { "alias": "size"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "fillMode": { "alias": "fillMode"; "required": false; }; "color": { "alias": "color"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; }; "smooth": { "alias": "smooth"; "required": false; }; "maximizable": { "alias": "maximizable"; "required": false; }; "maximized": { "alias": "maximized"; "required": false; }; "popupScale": { "alias": "popupScale"; "required": false; }; "exportScale": { "alias": "exportScale"; "required": false; }; "parentLocalization": { "alias": "parentLocalization"; "required": false; }; "hideLine": { "alias": "hideLine"; "required": false; }; }, { "valueChange": "valueChange"; "open": "open"; "close": "close"; "onFocus": "focus"; "onBlur": "blur"; "minimize": "minimize"; }, never, never, true, never>;
}
