import type { ExtractPropTypes, CSSProperties, DefineComponent, PropType } from 'vue';
import type { Key, VueNode } from '../_util/type';
import { type TooltipPlacement } from '../tooltip';
import { type ColorGenInput } from '../vc-color-picker';
import { type SizeType } from '../config-provider';
import type { AggregationColor } from './color';
export type { ColorGenInput };
export type Colors<T> = {
    color: ColorGenInput<T>;
    percent: number;
}[];
export declare const FORMAT_HEX = "hex";
export declare const FORMAT_RGB = "rgb";
export declare const FORMAT_HSB = "hsb";
export type ColorFormatType = typeof FORMAT_HEX | typeof FORMAT_RGB | typeof FORMAT_HSB;
export interface PresetsItem {
    label: VueNode;
    colors: (string | AggregationColor | LineGradientType)[];
    defaultOpen?: boolean;
    key?: Key;
}
export type LineGradientType = {
    color: SingleValueType;
    percent: number;
}[];
export type TriggerType = 'click' | 'hover';
export type TriggerPlacement = TooltipPlacement;
export type SingleValueType = AggregationColor | string;
export type ColorValueType = SingleValueType | null | LineGradientType;
export type ModeType = 'single' | 'gradient';
export declare const colorPickerProps: () => {
    mode: PropType<ModeType | ModeType[]>;
    value: PropType<ColorValueType>;
    defaultValue: PropType<ColorValueType>;
    open: BooleanConstructor;
    disabled: BooleanConstructor;
    placement: PropType<TooltipPlacement>;
    trigger: PropType<TriggerType>;
    format: PropType<ColorFormatType>;
    defaultFormat: PropType<ColorFormatType>;
    allowClear: BooleanConstructor;
    presets: PropType<PresetsItem[]>;
    arrow: PropType<boolean | {
        pointAtCenter: boolean;
    }>;
    panelRender: PropType<(panel: VueNode, extra: {
        components: {
            Picker: DefineComponent;
            Presets: DefineComponent;
        };
    }) => VueNode>;
    showText: PropType<boolean | ((color: AggregationColor) => VueNode)>;
    size: PropType<SizeType>;
    styles: PropType<{
        popup?: CSSProperties;
        popupOverlayInner?: CSSProperties;
    }>;
    rootClassName: StringConstructor;
    disabledAlpha: BooleanConstructor;
    onOpenChange: PropType<(open: boolean) => void>;
    onFormatChange: PropType<(format?: ColorFormatType) => void>;
    onChange: PropType<(value?: AggregationColor, css?: string) => void>;
    'onUpdate:value': PropType<(value?: AggregationColor) => void>;
    onClear: PropType<() => void>;
    onChangeComplete: PropType<(value: AggregationColor) => void>;
    disabledFormat: BooleanConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    destroyTooltipOnHide: {
        type: BooleanConstructor;
        default: any;
    };
    autoAdjustOverflow: {
        type: PropType<boolean | import("../tooltip").AdjustOverflow>;
        default: boolean | import("../tooltip").AdjustOverflow;
    };
    style: PropType<CSSProperties>;
    className: StringConstructor;
    prefixCls: StringConstructor;
};
export type ColorPickerProps = Partial<ExtractPropTypes<ReturnType<typeof colorPickerProps>>>;
