import React, { SVGProps } from "react";
import { UseFormReturn } from "react-hook-form";
export type ParameterDefinition<TOptions extends Record<string, any> = Record<string, any>> = {
    options: TOptions;
    type?: string;
    id: string;
};
type ParameterBuilder<TOptions> = {
    build(obj: Partial<Omit<ParameterDefinition<TOptions>, "type">>): ParameterDefinition<TOptions>;
    parameter: ParameterDefinition<TOptions>;
    InputParams: React.FC<{
        formRef: UseFormReturn<{
            parameters: ParameterDefinition<TOptions>[];
        }>;
        idx: number;
        parameter: ParameterDefinition<TOptions>;
    }>;
    ModalContentParams: React.FC<{
        formRef: UseFormReturn<ParameterDefinition<TOptions>>;
        parameter?: ParameterDefinition<TOptions>;
    }>;
    Icon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
    customQuery?(data: ParameterDefinition): {
        id: string;
        options: any;
        type?: string;
    };
};
export default class ParameterRegistry {
    ParameterBuilders: Record<string, ParameterBuilder<any>>;
    from<T>(defaultOptions: T): {
        addParameter: (type: string, createParameterBuilder: () => Omit<ParameterBuilder<T>, "parameter" | "build" | "schema">) => ParameterBuilder<T>;
    };
}
export {};
