import { dimensions, direction, location, xy } from '@synnaxlabs/x';
import { ComponentPropsWithoutRef, MouseEventHandler, PropsWithChildren, ReactElement } from 'react';
import { Button as CoreButton } from '../../../button';
import { Color } from '../../../color';
import { Input } from '../../../input';
export interface OrientableProps {
    orientation?: location.Outer;
}
export interface SVGBasedPrimitiveProps extends OrientableProps {
    color?: Color.Crude;
    scale?: number;
}
export interface DivProps extends Omit<ComponentPropsWithoutRef<"div">, "color" | "onResize">, OrientableProps {
}
interface ToggleProps extends Omit<ComponentPropsWithoutRef<"button">, "color" | "value"> {
    triggered?: boolean;
    enabled?: boolean;
    color?: Color.Crude;
}
export interface SmartHandlesProps extends PropsWithChildren<{}>, OrientableProps {
}
export interface InternalSVGProps extends SVGBasedPrimitiveProps, Omit<ComponentPropsWithoutRef<"svg">, "direction" | "color" | "orientation"> {
    dimensions: dimensions.Dimensions;
    color?: Color.Crude;
    scale?: number;
}
export interface FourWayValveProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const FourWayValve: ({ className, orientation, scale, color, ...props }: FourWayValveProps) => ReactElement;
export interface ThreeWayValveProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const ThreeWayValve: ({ color, orientation, scale, ...props }: ThreeWayValveProps) => ReactElement;
export interface ValveProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const Valve: ({ orientation, color, scale, ...props }: ValveProps) => ReactElement;
export interface SolenoidValveProps extends ToggleProps, SVGBasedPrimitiveProps {
    normallyOpen?: boolean;
}
export declare const SolenoidValve: ({ className, color, orientation, normallyOpen, scale, ...props }: SolenoidValveProps) => ReactElement;
export interface ReliefValveProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const ReliefValve: ({ className, orientation, color, scale, ...props }: ReliefValveProps) => ReactElement;
export interface CheckValveProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const CheckValve: ({ className, orientation, color, scale, ...props }: CheckValveProps) => ReactElement;
export interface AngledValveProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const AngledValve: ({ color, className, orientation, scale, ...props }: AngledValveProps) => ReactElement;
export interface PumpProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const Pump: ({ color, className, orientation, scale, ...props }: PumpProps) => ReactElement;
export interface BurstDiscProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const BurstDisc: ({ className, color, orientation, scale, ...props }: BurstDiscProps) => ReactElement;
export interface CapProps extends SVGBasedPrimitiveProps, DivProps {
}
export declare const Cap: ({ className, orientation, color, scale, ...props }: CapProps) => ReactElement;
export interface ManualValveProps extends SVGBasedPrimitiveProps, DivProps {
}
export declare const ManualValve: ({ className, orientation, color, scale, ...props }: ManualValveProps) => ReactElement;
export interface FilterProps extends SVGBasedPrimitiveProps, DivProps {
}
export declare const Filter: ({ className, orientation, color, scale, ...props }: FilterProps) => ReactElement;
type DetailedBorderRadius = Record<location.CornerXYString, xy.XY>;
type BorderRadius = number | Record<direction.Direction, number> | Record<location.CornerXYString, number> | DetailedBorderRadius;
export declare const DEFAULT_BORDER_RADIUS: {
    x: number;
    y: number;
};
export interface TankProps extends DivProps {
    dimensions?: dimensions.Dimensions;
    borderRadius?: BorderRadius;
    color?: Color.Crude;
    onResize?: (dimensions: dimensions.Dimensions) => void;
}
export declare const Tank: ({ className, dimensions, borderRadius, color, ...props }: TankProps) => ReactElement;
export interface RegulatorProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const Regulator: ({ className, orientation, color, scale, ...props }: RegulatorProps) => ReactElement;
export interface OrificeProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const Orifice: ({ className, orientation, scale, color, ...props }: OrificeProps) => ReactElement;
export interface NeedleValveProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const NeedleValve: ({ className, orientation, color, scale, ...props }: NeedleValveProps) => ReactElement;
export interface AngledReliefValveProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const AngledReliefValve: ({ className, orientation, color, scale, ...props }: AngledReliefValveProps) => ReactElement;
export interface ValueProps extends DivProps {
    dimensions?: dimensions.Dimensions;
    color?: Color.Crude;
    units?: string;
}
export declare const Value: ({ className, color, dimensions, orientation, units, children, ...props }: ValueProps) => ReactElement;
export interface SwitchProps extends Omit<ToggleProps, "onClick">, OrientableProps {
    onClick?: MouseEventHandler<HTMLInputElement>;
}
export declare const Switch: ({ enabled, onClick, orientation, }: SwitchProps) => ReactElement;
export interface ButtonProps extends Omit<DivProps, "onClick">, Pick<CoreButton.ButtonProps, "color" | "size" | "level"> {
    label?: string;
    onClick?: MouseEventHandler<HTMLButtonElement>;
    color?: Color.Crude;
}
export declare const Button: ({ onClick, orientation, label, color, size, level, }: ButtonProps) => ReactElement;
export interface SetpointProps extends Omit<DivProps, "onClick" | "value" | "onChange">, Input.Control<number> {
    dimensions?: dimensions.Dimensions;
    color?: Color.Crude;
    units?: string;
    onClick?: MouseEventHandler<HTMLButtonElement>;
}
export declare const Setpoint: ({ orientation, className, onClick, children, value, units, onChange, ...props }: SetpointProps) => ReactElement;
export interface ScrewPumpProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const ScrewPump: ({ color, className, orientation, scale, ...props }: ScrewPumpProps) => ReactElement;
export interface VacuumPumpProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const VacuumPump: ({ color, className, orientation, scale, ...props }: VacuumPumpProps) => ReactElement;
export interface CavityPumpProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const CavityPump: ({ color, className, orientation, scale, ...props }: CavityPumpProps) => ReactElement;
export interface PistonPumpProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const PistonPump: ({ color, className, orientation, scale, ...props }: PistonPumpProps) => ReactElement;
export interface StaticMixerProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const StaticMixer: ({ color, className, orientation, scale, ...props }: StaticMixerProps) => ReactElement;
export interface RotaryMixerProps extends ToggleProps, SVGBasedPrimitiveProps {
}
export declare const RotaryMixer: ({ color, className, orientation, scale, ...props }: RotaryMixerProps) => ReactElement;
export interface LightProps extends ToggleProps, SVGBasedPrimitiveProps {
    color?: Color.Crude;
}
export declare const Light: ({ className, color, orientation, scale, ...props }: LightProps) => ReactElement;
export interface ElectricRegulatorProps extends DivProps, SVGBasedPrimitiveProps {
}
export declare const ElectricRegulator: ({ className, orientation, color, scale, ...props }: RegulatorProps) => ReactElement;
export {};
//# sourceMappingURL=Primitives.d.ts.map