import { VariableTypes, CurrentValue } from '../variables/types'; import { CommunicationActionTypes } from '../comms/types'; import { Spec } from '../specs/types'; export declare const DEFINE_COMPONENT = "DEFINE_COMPONENT"; export declare const REMOVE_COMPONENT = "REMOVE_COMPONENT"; export declare const COMPONENT_EVENT = "COMPONENT_EVENT"; export interface DefineComponentProperty { name: string; value: T; func: string; } export declare type ComponentProperty = DefineComponentProperty & CurrentValue; export interface ComponentEvent { name: string; func: string; } export interface Component { spec: string; id: string; scope: string; name: string | null; description: string; properties: Record; events: Record; } export declare type DefineComponent = Omit & { properties: Record; }; export declare type ComponentsState = Record; export interface ComponentEventAction { type: typeof COMPONENT_EVENT; payload: { id: string; component: string; name: string; values: VariableTypes[]; }; } export interface CreateComponentAction { type: typeof DEFINE_COMPONENT; payload: { spec: Spec; component: DefineComponent; }; } export interface RemoveComponentAction { type: typeof REMOVE_COMPONENT; payload: { id: string; }; } export declare type ComponentActionTypes = CreateComponentAction | RemoveComponentAction | ComponentEventAction | CommunicationActionTypes; export interface CreateComponentOptionDefaults { scope: string; name: string | null; description: string; } export interface UpdateComponentOptionDefaults extends CreateComponentOptionDefaults { scope: string; name: string | null; } export declare type PartialProps = Partial, 'name'>>;