import { AsyncStream } from 'data-async-iterators'; import { Duration } from 'data-unit'; import { Executor } from './Executor'; import { Stream, ICompiler } from '../Compiler'; import { Class } from './Conversion'; import { FFmpegProcess } from '../Utils/FFmpegProcess'; import { Hook } from '../Utils/Hookable'; /** * @category composable/executors */ export interface Scene { start: number; end: number; } /** * @category composable/executors */ export interface BlackSceneOptions { minDuration?: number | Duration; pictureThreshold?: number; pixelRatioThreshold?: number; } /** * @category composable/executors */ export declare var BlackScenePattern: RegExp; /** * @category composable/executors */ export declare class BlackSceneDetector extends Executor> { stream: Stream; compiler: ICompiler; options: BlackSceneOptions; constructor(stream: Stream, options?: BlackSceneOptions, compiler?: ICompiler); createProcess(factory: Class): T; createProcess(): BlackSceneProcess; execute(): AsyncStream; } /** * @category composable/executors */ export declare class BlackSceneProcess extends FFmpegProcess { onBlackScene: Hook; processBlackSceneLine(line: string): void; setup(): void; }