flat-embed
Version:
Interact and get events from Flat's Sheet Music Embed
49 lines (48 loc) • 1.88 kB
TypeScript
import { default as Embed } from '../embed';
import { EmbedMessageReceived, EmbedMessageReceivedEvent, EmbedMessageReceivedMethod } from '../types';
import { EmbedEventName } from '../types/events';
declare class EmbedCallback {
embed: Embed;
promises: Partial<Record<string, {
resolve: (value: unknown) => void;
reject: (reason?: unknown) => void;
}[]>>;
eventCallbacks: Partial<Record<EmbedEventName, ((parameters: unknown) => void)[]>>;
constructor(embed: Embed);
pushCall(name: string, resolve: (value: unknown) => void, reject: (reason?: unknown) => void): void;
/**
* Register a callback for a specified event
*
* @param event The name of the event.
* @param callback The function to call when receiving an event
* @return `true` if it is the first subscriber, `false otherwise`
*/
subscribeEvent(event: EmbedEventName, callback: (parameters: unknown) => void): boolean;
/**
* Unregister a callback for a specified event
*
* @param event The name of the event.
* @param callback The function to call when receiving an event
* @return `true` if it is the last subscriber, `false otherwise`
*/
unsubscribeEvent(event: EmbedEventName, callback?: (parameters: unknown) => void): boolean;
/**
* Process a message received from postMessage
*
* @param {object} data The data received from postMessage
*/
process(data: EmbedMessageReceived): void;
/**
* Process a method response
*
* @param {object} data The data received from postMessage
*/
processMethodResponse(data: EmbedMessageReceivedMethod): void;
/**
* Process a receieved event
*
* @param {object} data The data received from postMessage
*/
processEvent(data: EmbedMessageReceivedEvent): void;
}
export default EmbedCallback;