import State from "./state"; import Agile from "./agile"; export declare type SubscriptionContainer = ComponentContainer | CallbackContainer; export declare class ComponentContainer { component: any; passProps: boolean; propStates?: { [key: string]: State; }; propKeysChanged: Array; ready: boolean; subs: Set; constructor(component: any, subs?: Set); } export declare class CallbackContainer extends ComponentContainer { callback: Function; constructor(callback: Function, subs?: Set); } export default class SubController { agileInstance: () => Agile; components: Set; callbacks: Set; constructor(agileInstance: Agile); /** * Subscribe to Agile State with a returned object of props this props can than be returned by the component (See react-integration) */ subscribeWithSubsObject(subscriptionInstance: any, subs?: { [key: string]: State; }): { subscriptionContainer: SubscriptionContainer; props: { [key: string]: State['value']; }; }; /** * Subscribe to Agile State */ subscribeWithSubsArray(subscriptionInstance: any, subs?: Array): SubscriptionContainer; /** * Unsubscribe a component or callback */ unsubscribe(subscriptionInstance: any): void; /** * Registers the Component/Callback Subscription and returns a SubscriptionContainer */ registerSubscription(integrationInstance: any, subs?: Array): SubscriptionContainer; /** * This will mount the component (Mounts currently only useful in Component based Subscription) */ mount(integrationInstance: any): void; }