import { EventEmitter } from "events"; import type StrictEventEmitter from "strict-event-emitter-types"; import { Playback } from "./playback"; export type Marker = [M, number, number]; interface ScriptEvents { markerupdate: number; } declare const Script_base: new () => StrictEventEmitter; export declare class Script extends Script_base { /** The underlying {@link Playback} instance. */ playback: Playback; /** The array of markers, in the form [name, startTime, endTime]. */ markers: Marker[]; /** Index of the active marker. */ markerIndex: number; constructor(markers: readonly (readonly [M, number | string, number | string] | readonly [M, number | string])[]); /** @deprecated */ get hub(): this; /** Name of the active marker. */ get markerName(): string; /** Seek playback to the previous marker. */ back(): void; /** Advance playback to the next marker. */ forward(): void; /** * Returns the first marker with the given name. * @throws {Error} If no marker named `name` exists. */ markerByName(name: string): Marker; /** * Returns the first index of a marker named `name`. * @throws {Error} If no marker named `name` exists. */ markerNumberOf(name: string): number; /** If `start` is a string, returns the starting time of the marker with that name. Otherwise, returns `start`. */ parseStart(start: number | string): number; /** If `end` is a string, returns the ending time of the marker with that name. Otherwise, returns `end`. */ parseEnd(end: number | string): number; /** Update marker */ __updateMarker(t: number): void; } export {};