interface PlaylistUiConfiguration {
    /**
     * Defaults to `false`.
     */
    hideOnStart: boolean;
    /**
     * Defaults to `true`.
     */
    nextButton: boolean;
    /**
     * Defaults to `true`.
     */
    nextOverlay: boolean;
    /**
     * Defaults to `false`.
     */
    playOnSelect: boolean;
    /**
     * Defaults to `true`.
     */
    playlistPicker: boolean;
    /**
     * Defaults to `false`.
     */
    horizontal: boolean;
    /**
     * Defaults to `false`.
     */
    repeat: boolean;
}

interface PlaylistUiIntegration {
    togglePlaylistSidebar(): void;
    /** @internal */
    updateConfiguration(configuration: PlaylistUiConfiguration, prev: PlaylistUiConfiguration): void;
    /** @internal */
    dispose(): void;
}

type PlaylistUiIntegrationFactory = new (...args: Array<unknown>) => PlaylistUiIntegration;

export type { PlaylistUiIntegrationFactory };
