import { SubjectDataSetColumn , SubjectDataSetFilter , SubjectDataSetJoin } from '@/services/data/tuples/subject-types' ; import { Topic } from '@/services/data/tuples/topic-types' ; export interface SubjectDefData { availableTopics : Array < Topic > ; pickedTopics : Array < Topic > ; } export enum SubjectDefEventTypes { DATA_LOADED = 'data-loaded' , TOPIC_PICKED = 'topic-picked' , TOPIC_UNPICKED = 'topic-unpicked' , ASK_PICKED_TOPICS = 'ask-picked-topics' , DATASET_COLUMN_ADDED = 'dataset-column-added' , DATASET_COLUMN_REMOVED = 'dataset-column-removed' , DATASET_COLUMN_CHANGED = 'dataset-column-changed' , DATASET_FILTER_ADDED = 'dataset-filter-added' , DATASET_FILTER_REMOVED = 'dataset-filter-removed' , DATASET_FILTER_CHANGED = 'dataset-filter-changed' , DATASET_JOIN_ADDED = 'dataset-join-added' , DATASET_JOIN_REMOVED = 'dataset-join-removed' , DATASET_JOIN_CHANGED = 'dataset-join-changed' } export interface SubjectDefEventBus { fire ( type , data ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , topic ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , topic ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , onData ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , column ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , column ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , column ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , filter ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , filter ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , filter ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , join ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , join ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; fire ( type , join ) : this ; on ( type , listener ) : this ; off ( type , listener ) : this ; }