import { ElementRef } from '@angular/core';
import { AlphaChannel, ColorMode, DialogDisplay, DialogPosition, InputChangeEvent, OutputFormat, SliderChangeEvent } from './types';
/**
 * @internal
 */
export declare class SliderPosition {
    h: number;
    s: number;
    v: number;
    a: number;
    constructor(h: number, s: number, v: number, a: number);
}
/**
 * @internal
 */
export declare class SliderDimension {
    h: number;
    s: number;
    v: number;
    a: number;
    constructor(h: number, s: number, v: number, a: number);
}
/**
 * @internal
 */
export declare enum ColorModeInternal {
    color = 0,
    grayscale = 1,
    presets = 2
}
/**
 * @internal
 */
export declare function parseColorMode(mode: string): ColorModeInternal;
/**
 * @internal
 */
export declare function sizeToString(val: any): string;
/**
 * @internal
 */
export type CursorEvent = {
    v: number;
    rgX: number;
} | {
    v: number;
    rgY: number;
} | {
    v: number;
    s: number;
    rgX: number;
    rgY: number;
};
/**
 * @internal
 */
export type TextEvent = string | {
    v: number;
    rg: number;
};
/**
 * @internal
 */
export interface DirectiveCallbacks {
    stateChanged(state: boolean): void;
    cmykChanged(valuse: string, ignore?: boolean): void;
    colorChanged(value: string, ignore?: boolean): void;
    colorSelectCanceled(): void;
    colorSelected(value: string): void;
    inputChanged(event: InputChangeEvent): void;
    sliderDragStart(event: SliderChangeEvent): void;
    sliderChanged(event: SliderChangeEvent): void;
    sliderDragEnd(event: SliderChangeEvent): void;
    presetColorsChanged(value?: string[]): void;
}
/**
 * @internal
 */
export interface DialogConfig {
    callbacks: DirectiveCallbacks;
    elementRef: ElementRef;
    color: any;
    width: string;
    height: string;
    dialogDisplay: DialogDisplay;
    fallbackColor?: string;
    mode: ColorMode;
    cmykEnabled: boolean;
    alphaChannel: AlphaChannel;
    outputFormat: OutputFormat;
    disableInput: boolean;
    ignoredElements?: any[];
    saveClickOutside: boolean;
    closeClickOutside: boolean;
    useRootViewContainer: boolean;
    position: DialogPosition | DialogPosition[];
    presetLabel: boolean | string;
    presetColors?: string[];
    maxPresetColors?: number;
    okButton: boolean;
    cancelButton: boolean;
    presetColorsEditable: boolean;
}
/**
 * @internal
 */
export declare function composedPath(event: Event): EventTarget[];
