///
import { Archive } from '@shockpkg/archive-files';
/**
* Projector constructor.
*
* @param path Output path.
*/
export declare abstract class Projector extends Object {
/**
* Path to hdiutil binary.
*/
hdiutil: string | null;
/**
* Output path.
*/
readonly path: string;
constructor(path: string);
/**
* The movie appended marker.
*
* @returns Hex string.
*/
get movieAppendMarker(): string;
/**
* Get the player file or directory as an Archive instance.
*
* @param path File path.
* @returns Archive instance.
*/
openAsArchive(path: string): Promise;
/**
* Write out projector with player and file.
*
* @param player Player path.
* @param movieFile Movie file.
*/
withFile(player: string, movieFile: string | null): Promise;
/**
* Write out projector with player and data.
*
* @param player Player path.
* @param movieData Movie data.
*/
withData(player: string, movieData: Readonly | null): Promise;
/**
* Check that output path is valid, else throws.
*/
protected _checkOutput(): Promise;
/**
* Append movie data to a file.
* Format string characters:
* - d: Movie data.
* - m: Marker bytes.
* - s: Size, 32LE.
* - S: Size, 32BE.
* - l: Size, 64LE.
* - L: Size, 64BE.
*
* @param file File to append to.
* @param data Movie data.
* @param format Format string.
*/
protected _appendMovieData(file: string, data: Readonly, format: string): Promise;
/**
* Projector file extension.
*
* @returns File extension.
*/
abstract get extension(): string;
/**
* Write the projector player.
*
* @param player Player path.
*/
protected abstract _writePlayer(player: string): Promise;
/**
* Modify the projector player.
*/
protected abstract _modifyPlayer(): Promise;
/**
* Write out the projector movie file.
*
* @param movieData Movie data or null.
*/
protected abstract _writeMovie(movieData: Readonly | null): Promise;
}