/**
 * Types
 *
 * These are the types that are shared between many components in
 * the library.
 */
import { ReactNode } from 'react';
import type { ValidationResult } from 'react-aria-components';
export type Dict<T extends any = any> = {
    [key: string]: T;
};
export type Group<T> = {
    group: string;
    children: (T | Group<any>)[];
};
export type PortalProps = {
    children: ReactNode;
};
export type ElementProps = {
    className?: string;
    style?: object;
};
export type BlockProps = ElementProps & PortalProps;
export type ValueProps<T> = {
    value?: T;
    readonly?: boolean;
    onChange?: (value: T, e?: any) => any;
};
export type InputProps<T> = ValueProps<T> & {
    disabled?: boolean;
    name?: string;
    placeholder?: string;
};
export type MultiSliderProps = {
    colors: string[] | string[][];
    labels?: string[];
    breakValues: number[];
    onBreakValuesChange?: (value: number[]) => void;
    onAfterChange?: (value: number[], index: number) => void;
    pearling?: boolean;
    tooltipVisible?: boolean;
    isComposite?: boolean;
    renderOnAfterChange?: boolean;
    isSmall?: boolean;
    compositeBreakValues?: number[][];
    description?: string;
    errorMessage?: string | ((validation: ValidationResult) => string);
    disabled?: boolean;
};
export type ListBoxItem = {
    id: string | number;
    data: object;
    content: ReactNode | string;
    selected?: boolean;
};
export declare enum States {
    DARK = "dark",
    ACTIVE = "active",
    ALERT = "alert",
    WARNING = "warning",
    SUCCESS = "success",
    DISCOVERY = "discovery",
    OUTPUT = "output",
    ACTIVE_OUTPUT = "active-output",
    LIGHT = "light",
    DISABLED = "disabled"
}
export declare enum Sizes {
    STANDARD = "standard",
    XSMALL = "xsmall",
    SMALL = "small",
    MEDIUM = "medium",
    LARGE = "large",
    XLARGE = "xlarge"
}
export declare enum CheckboxStatus {
    ALL = "all",
    NONE = "none",
    SOME = "some"
}
export declare enum Positions {
    TOP = "top",
    BOTTOM = "bottom",
    LEFT = "left",
    RIGHT = "right"
}
export type ColorRange = {
    value: number;
    color: string;
}[];
