interface SocialSharingConfigurationServices { /** * Whether or not to include Facebook. * Defaults to `true` */ facebook: boolean; /** * Whether or not to include Twitter. * Defaults to `true` */ twitter: boolean; /** * Whether or not to include Tumblr. * Defaults to `true` */ tumblr: boolean; /** * Whether or not to include Pinterest. * Defaults to `true` */ pinterest: boolean; /** * Whether or not to include LinkedIn. * Defaults to `true` */ linkedin: boolean; } interface SocialSharingConfiguration { /** * Used to provide a title for use in the social overlay. * Can be updated dynamically. * Defaults to an empty string. */ title: string; /** * Used to provide a description for use in the social overlay. * Can be updated dynamically. * Defaults to an empty string. */ description: string; /** * Used to provide a custom URL that replaces the generated one. * Can be updated dynamically. * Defaults to an empty string. */ url: string; /** * Used to provide a label for the social overlay. * Can only be updated on initialization of the plugin. * Defaults to an empty string. */ label: string; /** * Used to provide a custom embed code that replaces the generated one. * Can be updated dynamically. * Defaults to an empty string. */ embedCode: string; /** * This value is only used when the embed code is not set. * Used to provide a custom domain if proxy is being used. * Can be updated dynamically. * Defaults to `'players.brightcove.net'`. */ embedDomain: string; /** * If true, the current dimensions of the player will be provided in default embed code. * Can be updated dynamically. * Defaults to `false`. */ embedDimensions: boolean; /** * If true, direct links will include a start offset. * Can be updated dynamically. * Defaults to `false`. */ deeplinking: boolean; /** * An offset in "hh:mm:ss" format to use for sharing URLs. * Can be updated dynamically. * Defaults to `'00:00:00'`. */ offset: string; /** * If true, turns off the direct link. * Can be updated dynamically. * Defaults to `false`. */ removeDirect: boolean; /** * If true, turns off the embed code. * Can be updated dynamically. * Defaults to `false`. */ removeEmbed: boolean; /** * Can be updated dynamically. * See SocialSharingConfigurationServices for defaults. */ services: SocialSharingConfigurationServices; } interface CustomEndScreenConfiguration { /** * Any string literal or HTML that is rendered on the custom endscreen. * Defaults to an empty string. */ content: string; } interface EndScreenConfiguration { social: SocialSharingConfiguration; custom: CustomEndScreenConfiguration; } interface EndScreenIntegration { /** @internal */ updateConfiguration(endScreenConfiguration: EndScreenConfiguration, prev: EndScreenConfiguration): void; /** @internal */ dispose(): void; } type CustomEndScreenIntegrationFactory = new (...args: Array) => EndScreenIntegration; export type { CustomEndScreenIntegrationFactory };