import { AfterViewInit, NgZone, OnDestroy } from '@angular/core';
import { ThemePalette } from '@angular/material/core';
import { Subject } from 'rxjs';
import { Color } from '../../models';
import * as i0 from "@angular/core";
export declare abstract class NgxMatBaseColorCanvas implements OnDestroy, AfterViewInit {
    protected zone: NgZone;
    readonly colorChanged: import("@angular/core").OutputEmitterRef<Color>;
    readonly theme: import("@angular/core").InputSignal<ThemePalette>;
    readonly color: import("@angular/core").WritableSignal<Color>;
    set setColor(color: Color);
    canvas: HTMLCanvasElement;
    elementId: string;
    ctx: CanvasRenderingContext2D;
    width: number;
    height: number;
    x: number;
    y: number;
    drag: boolean;
    protected _destroyed: Subject<void>;
    constructor(zone: NgZone, elementId: string);
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    protected draw(): void;
    onMousedown(e: MouseEvent): void;
    onMousemove(e: MouseEvent): void;
    onMouseup(e: MouseEvent): void;
    emitChange(color: Color): void;
    abstract changeColor(e: MouseEvent): void;
    abstract fillGradient(): void;
    abstract redrawIndicator(x: number, y: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatBaseColorCanvas, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgxMatBaseColorCanvas, never, never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "setColor": { "alias": "color"; "required": false; }; }, { "colorChanged": "colorChanged"; }, never, never, true, never>;
}
