UNPKG

@signiant/media-shuttle-sdk-base

Version:

The base parent sdk behind other media shuttle sdks (e.g. media-shuttle-sdk)

64 lines 2.98 kB
import Transfer from './Transfer'; import TransferEventType from '../enums/TransferEventType'; import TransferEventCallback from './events/TransferEventCallback'; /** * The Download interface, extension of {@link Transfer} */ export default interface Download extends Transfer { /** * Subscribe to a transfer event. Note that all subscriptions will automatically be removed once a * download has completed. * * @example * ``` * addSubscriptions(download: Download) { * const listener = (data: TransferEventCallbackData): Promise<void> => { * const { transfer, transferEvent }: TransferEventCallbackData = data; * const { type, eventData }: TransferEvent = transferEvent; * switch (type) { * case TransferEventType.TRANSFER_STARTED: * //Cast to the associated type of event data * const progressData: TransferProgressEventData = <TransferProgressEventData>eventData; * // process as appropriate * break; * case TransferEventType.TRANSFER_COMPLETED: * const completedData: TransferCompletedEventData = <TransferCompletedEventData>eventData; * // process as appropriate * break; * } * } * download.subscribe(TransferEventType.TRANSFER_PROGRESS, startListener); * download.subscribe(TransferEventType.TRANSFER_COMPLETED, startListener); * } * ``` * * @param eventType The type of event we are subscribing to. * @param listener The listener we wish to assign to an event. */ subscribe(eventType: TransferEventType, listener: TransferEventCallback<Download>): void; /** * Unsubscribe from a transfer event * * @param eventType The type of event we are unsubscribing from. * @param listener The listener we wish to unsubscribe. * @returns true if the listener was present and unsubscribed, false if there was no match for the * eventType / listener combination. */ unsubscribe(eventType: TransferEventType, listener?: TransferEventCallback<Download>): boolean; /** * Opens destination folder chosen during the download initialization. * * This simplifies the process of finding the downloaded file or files on transfer * completion but is otherwise not required. * * This launches a finder window for Mac or an explorer window for windows * @returns A Promise which will resolve when the destination folder opens in a file browser. */ openDestinationFolder(): Promise<void>; /** * Prompts for the destination folder for the downloaded files. This launches a native folder chooser. * @returns A Promise which will resolve when the destination folder is chosen in native file chooser window */ selectDestinationFolder(): Promise<void>; } //# sourceMappingURL=Download.d.ts.map