import * as _angular_core from '@angular/core';
import { EventEmitter } from '@angular/core';
import { ColorRGB, Point2D } from '@obliczeniowo/elementary/classes';
import * as i3 from '@angular/common';

interface HexColor {
    color: ColorRGB | string;
    x: number | string;
    y: number | string;
}
declare class HexColorComponent {
    /** hex element ray */
    ray: _angular_core.InputSignal<number>;
    /** x pos can be css style like calc(50% + 10px) */
    x: _angular_core.InputSignal<string | number>;
    /** y pos can be css style like calc(50% + 10px) */
    y: _angular_core.InputSignal<string | number>;
    /** fill color as ColorRGB object or string color as one of:
     * #ffffff
     * rgb(255, 255, 255)
     * rgba(255, 255, 255, 0.5)
     * named color format, for example: red, blue, green ... */
    fill: _angular_core.InputSignal<string | ColorRGB>;
    strokeWidth: _angular_core.InputSignal<number>;
    /** stroke color as ColorRGB object or string color as one of:
     * #ffffff
     * rgb(255, 255, 255)
     * rgba(255, 255, 255, 0.5)
     * named color format, for example: red, blue, green ... */
    strokeColor: _angular_core.InputSignal<string | ColorRGB>;
    clicked: EventEmitter<HexColor>;
    protected fillHover: _angular_core.Signal<string | ColorRGB>;
    hover: boolean;
    protected points: _angular_core.Signal<string>;
    onClick(): void;
    protected recalc(): string;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<HexColorComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<HexColorComponent, "g[obl-hex-color]", never, { "ray": { "alias": "ray"; "required": false; "isSignal": true; }; "x": { "alias": "x"; "required": false; "isSignal": true; }; "y": { "alias": "y"; "required": false; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "strokeColor": { "alias": "strokeColor"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, false, never>;
}

declare class HexColorsComponent {
    /** hex element ray */
    ray: _angular_core.InputSignalWithTransform<number, number>;
    /** Number of levels */
    rounds: _angular_core.InputSignalWithTransform<number, number>;
    /** color to select if exist on palette of colors */
    color: _angular_core.ModelSignal<string>;
    protected width: _angular_core.Signal<number>;
    protected height: _angular_core.Signal<number>;
    readonly h: number;
    readonly rayTranslate: Point2D;
    readonly move: Point2D;
    elements: _angular_core.Signal<{
        pos: Point2D;
        color: ColorRGB;
    }[]>;
    strokeColor: ColorRGB | string;
    selected: _angular_core.Signal<HexColor | undefined>;
    selectedColor: ColorRGB;
    onChange(selected: HexColor): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<HexColorsComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<HexColorsComponent, "obl-hex-colors", never, { "ray": { "alias": "ray"; "required": false; "isSignal": true; }; "rounds": { "alias": "rounds"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, { "color": "colorChange"; }, never, never, false, never>;
}

declare class HexColorModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<HexColorModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HexColorModule, [typeof HexColorComponent, typeof HexColorsComponent], [typeof i3.CommonModule], [typeof HexColorsComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<HexColorModule>;
}

export { HexColorModule, HexColorsComponent };
