/**
 * Callback function.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/Callback)
 */
type Callback = (err: any, ans?: any) => void;
/**
 * Record options.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/RecOptions)
 */
interface RecOptions {
    /** Input javascript file. */
    input?: string;
    /** Append to file? (false) */
    append?: boolean;
    /** Save in raw format? (false) */
    raw?: boolean;
    /** Overwrite existing file? (true) */
    overwrite?: boolean;
    /** Command to record. (cat ${input} | node -i) */
    command?: string;
    /** Environment variables. */
    env?: string;
    /** File title. */
    title?: string;
    /** Maximum idle tile. */
    idleTimeLimit?: number;
}
/**
 * Retime options.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/RetimeOptions)
 */
interface RetimeOptions {
    /** Input text. */
    input?: string;
    /** Input rate. (0.1s) */
    inputRate?: number;
    /** Input delay. (1s) */
    inputDelay?: number;
    /** Output rate. (0.1s) */
    outputRate?: number;
    /** Output delay. (0.1s) */
    outputDelay?: number;
    /** Initial delay. (0s) */
    delay?: number;
}
/**
 * Record terminal session.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/rec)
 * @param f output filename
 * @param o options
 * @param fn callback function (err, asciicast file)
 * @returns asciicast file (promise)
 */
declare function rec(f?: string, o?: RecOptions, fn?: Callback): Promise<any>;
/**
 * Record terminal session.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/recSync)
 * @param f output filename
 * @param o options
 * @returns asciicast file
 */
declare function recSync(f: string, o?: RecOptions): string;
/**
 * Print full output of recorded asciicast to a terminal.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/cat)
 * @param f filename
 * @param fn callback (err, full output)
 * @returns full output (including all escape sequences)
 */
declare function cat(f: string, fn?: Callback): Promise<any>;
/**
 * Print full output of recorded asciicast to a terminal.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/catSync)
 * @param f filename
 * @returns full output (including all escape sequences)
 */
declare function catSync(f: string): string;
/**
 * Update time in asciicast data.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/retimeData)
 * @param d asciicast data
 * @param o options
 * @returns updated asciicast data
 */
declare function retimeData(d: string, o?: RetimeOptions): string;
/**
 * Update time in asciicast file.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/retime)
 * @param f filename
 * @param o options
 * @returns promise
 */
declare function retime(f: string, o?: RetimeOptions): Promise<any>;
/**
 * Update time in asciicast file.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/retimeSync)
 * @param f filename
 * @param o options
 */
declare function retimeSync(f: string, o?: RetimeOptions): void;
/**
 * Upload recorded asciicast to asciinema.org site.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/upload)
 * @param f filename
 * @param fn callback (err, asciicast URL)
 * @returns asciicast URL (promise)
 */
declare function upload(f: string, fn?: Callback): Promise<any>;
/**
 * Upload recorded asciicast to asciinema.org site.
 * [📘](https://github.com/nodef/extra-asciinema/wiki/uploadSync)
 * @param f filename
 * @returns asciicast URL
 */
declare function uploadSync(f: string): string;

export { Callback, RecOptions, RetimeOptions, cat, catSync, rec, recSync, retime, retimeData, retimeSync, upload, uploadSync };
