import { Subscription } from "../connection/Subscription"; /** * Classes which implement this interface can bind * specific control elements to publish messages */ export declare abstract class IBehaviour { protected readonly target: HTMLElement; protected subscription: Subscription | null; protected bindings: BehaviorBinding[]; channelId: string | null; protected constructor(target: HTMLElement, bindings: BehaviorBinding | BehaviorBinding[]); init(channelId: string): void; /** * Adds event listeners to the invoker. * The user is able to publish a message by * clicking the invoker. * * @param gateway the {@link Subscription} */ bind(gateway: Subscription): void; isValueValid: (value: string) => boolean | "" | null; /** * Removes the active event listeners */ unbind(): void; } declare type BehaviorBinding = { type: string; handler: (event: Event) => void; }; export {};