import { group } from '@synnaxlabs/client';
import { FC } from 'react';
import { z } from 'zod';
import { Icon } from '../../icon';
import { SymbolFormProps } from './Forms';
import { PreviewProps, SymbolProps } from './Symbols';
import { Theming } from '../../theming';
export interface Spec<P extends object = object> {
    key: Variant;
    name: string;
    Form: FC<SymbolFormProps>;
    Symbol: FC<SymbolProps<P>>;
    defaultProps: (t: Theming.Theme) => P;
    Preview: FC<PreviewProps<P>>;
    zIndex: number;
}
export declare const variantZ: z.ZodEnum<{
    value: "value";
    input: "input";
    button: "button";
    filter: "filter";
    circle: "circle";
    polygon: "polygon";
    switch: "switch";
    pump: "pump";
    valve: "valve";
    box: "box";
    tank: "tank";
    light: "light";
    cap: "cap";
    regulator: "regulator";
    orifice: "orifice";
    setpoint: "setpoint";
    agitator: "agitator";
    vent: "vent";
    cylinder: "cylinder";
    compressor: "compressor";
    thruster: "thruster";
    nozzle: "nozzle";
    strainer: "strainer";
    gauge: "gauge";
    angledReliefValve: "angledReliefValve";
    angledSpringLoadedReliefValve: "angledSpringLoadedReliefValve";
    angledValve: "angledValve";
    ballValve: "ballValve";
    threeWayBallValve: "threeWayBallValve";
    gateValve: "gateValve";
    butterflyValveOne: "butterflyValveOne";
    butterflyValveTwo: "butterflyValveTwo";
    breatherValve: "breatherValve";
    offPageReference: "offPageReference";
    burstDisc: "burstDisc";
    isoBurstDisc: "isoBurstDisc";
    cavityPump: "cavityPump";
    checkValve: "checkValve";
    crossBeamAgitator: "crossBeamAgitator";
    electricRegulator: "electricRegulator";
    electricRegulatorMotorized: "electricRegulatorMotorized";
    flowStraightener: "flowStraightener";
    heaterElement: "heaterElement";
    checkValveWithArrow: "checkValveWithArrow";
    flatBladeAgitator: "flatBladeAgitator";
    flowmeterGeneral: "flowmeterGeneral";
    flowmeterElectromagnetic: "flowmeterElectromagnetic";
    flowmeterVariableArea: "flowmeterVariableArea";
    flowmeterCoriolis: "flowmeterCoriolis";
    flowmeterNozzle: "flowmeterNozzle";
    flowmeterVenturi: "flowmeterVenturi";
    flowmeterRingPiston: "flowmeterRingPiston";
    flowmeterPositiveDisplacement: "flowmeterPositiveDisplacement";
    flowmeterTurbine: "flowmeterTurbine";
    flowmeterPulse: "flowmeterPulse";
    flowmeterFloatSensor: "flowmeterFloatSensor";
    flowmeterOrifice: "flowmeterOrifice";
    fourWayValve: "fourWayValve";
    helicalAgitator: "helicalAgitator";
    isoCap: "isoCap";
    isoCheckValve: "isoCheckValve";
    isoFilter: "isoFilter";
    manualValve: "manualValve";
    needleValve: "needleValve";
    orificePlate: "orificePlate";
    paddleAgitator: "paddleAgitator";
    propellerAgitator: "propellerAgitator";
    pistonPump: "pistonPump";
    regulatorManual: "regulatorManual";
    reliefValve: "reliefValve";
    rotaryMixer: "rotaryMixer";
    screwPump: "screwPump";
    solenoidValve: "solenoidValve";
    springLoadedReliefValve: "springLoadedReliefValve";
    staticMixer: "staticMixer";
    textBox: "textBox";
    threeWayValve: "threeWayValve";
    vacuumPump: "vacuumPump";
    tJunction: "tJunction";
    crossJunction: "crossJunction";
    heatExchangerGeneral: "heatExchangerGeneral";
    heatExchangerM: "heatExchangerM";
    heatExchangerStraightTube: "heatExchangerStraightTube";
    diaphragmPump: "diaphragmPump";
    ejectionPump: "ejectionPump";
    turboCompressor: "turboCompressor";
    rollerVaneCompressor: "rollerVaneCompressor";
    liquidRingCompressor: "liquidRingCompressor";
    ejectorCompressor: "ejectorCompressor";
    centrifugalCompressor: "centrifugalCompressor";
    flameArrestor: "flameArrestor";
    flameArrestorDetonation: "flameArrestorDetonation";
    flameArrestorExplosion: "flameArrestorExplosion";
    flameArrestorFireRes: "flameArrestorFireRes";
    flameArrestorFireResDetonation: "flameArrestorFireResDetonation";
    strainerCone: "strainerCone";
    customActuator: "customActuator";
    customStatic: "customStatic";
}>;
export type Variant = z.infer<typeof variantZ>;
export declare const REGISTRY: Record<Variant, Spec<any>>;
export interface Group extends group.Group {
    Icon: Icon.FC;
    symbols: Variant[];
}
export declare const GROUPS: Group[];
//# sourceMappingURL=registry.d.ts.map