import React, { ReactNode } from 'react'; import { Question, RecordClass, SearchConfig } from '../Utils/WdkModel'; import { Step, StrategyDetails, NewStepSpec } from '../Utils/WdkUser'; import { AddStepOperationMenuProps, AddStepOperationFormProps } from '../Views/Strategy/AddStepPanel'; import { ReviseOperatorMenuItem } from '../Views/Strategy/CombineStepDetails'; import { PartialUiStepTree } from '../Views/Strategy/Types'; declare type OperatorMenuItem = { radioDisplay: (stepALabel: ReactNode, stepBLabel: ReactNode) => ReactNode; value: string; }; declare type OperatorMenuGroup = { name: string; display: string; items: OperatorMenuItem[]; }; export declare type ReviseOperationFormProps = { uiStepTree: PartialUiStepTree; searchName?: string; step: Step; strategy: StrategyDetails; primaryInputRecordClass?: RecordClass; primaryInputQuestion?: Question; secondaryInputRecordClass?: RecordClass; secondaryInputQuestion?: Question; questions: Question[]; onClose: () => void; requestUpdateStepSearchConfig: (strategyId: number, stepId: number, searchConfig: SearchConfig) => void; requestReplaceStep: (strategyId: number, stepId: number, newStepSpec: NewStepSpec) => void; }; export declare type ReviseOperationParameterConfiguration = { type: 'form'; FormComponent: React.ComponentType; } | { type: 'inline'; }; export declare type BinaryOperation = { name: string; AddStepMenuComponent: React.ComponentType; addStepFormComponents: Record>; isOperationSearchName: (searchName: string) => boolean; baseClassName: string; operatorParamName: string; reviseOperatorParamConfiguration: ReviseOperationParameterConfiguration; operatorMenuGroup: OperatorMenuGroup; isCompatibleAddStepSearch: (search: Question, questionsByUrlSegment: Record, recordClassesByUrlSegment: Record, primaryOperandStep: Step, previousStep?: Step, outputStep?: Step) => boolean; AddStepHeaderComponent: React.ComponentType<{ inputRecordClass: RecordClass; }>; AddStepNewInputComponent: React.ComponentType<{}>; AddStepNewOperationComponent: React.ComponentType<{}>; }; export declare const defaultBinaryOperations: BinaryOperation[]; export declare const BinaryOperationsContext: React.Context; export declare const useBinaryOperations: () => BinaryOperation[]; export declare type AddStepMenuConfig = Pick; export declare type OperatorMetadata = { operatorName: string; searchName: string; baseClassName: string; paramName: string; paramValue: string; reviseOperatorParamConfiguration: ReviseOperationParameterConfiguration; }; export declare const useCompatibleOperatorMetadata: (questions: Question[] | undefined, uiStepTree: PartialUiStepTree) => Record | undefined; export declare type ReviseOperatorMenuGroup = { name: string; display: string; items: ReviseOperatorMenuItem[]; }; export declare const useReviseOperatorConfigs: (questions: Question[] | undefined, uiStepTree: PartialUiStepTree) => ReviseOperatorMenuGroup[] | undefined; export declare const useAddStepMenuConfigs: (questionsByUrlSegment?: Record | undefined, recordClassesByUrlSegment?: Record | undefined, primaryOperandStep?: Step | undefined, previousStep?: Step | undefined, outputStep?: Step | undefined) => AddStepMenuConfig[] | undefined; export declare const useSelectedAddStepFormComponent: (formName: string | undefined, questionsByUrlSegment?: Record | undefined, recordClassesByUrlSegment?: Record | undefined, primaryOperandStep?: Step | undefined, previousStep?: Step | undefined, outputStep?: Step | undefined) => React.ComponentType; export declare const useBinaryStepBoxClassName: (step: Step) => string | undefined; export {}; //# sourceMappingURL=Operations.d.ts.map