/**
 * Opt-in browser recording tools.
 *
 * Wraps the existing browser screencast infrastructure to capture frames, lets
 * the agent drop short captions at specific moments, and encodes the result as
 * a Motion-JPEG AVI video written to disk. The AVI format is used because it
 * can be muxed in pure JavaScript (no ffmpeg) and plays natively in QuickTime /
 * Preview / VLC / browsers.
 */
import type { MastraBrowser } from '../browser.js';
export interface BrowserRecordingOptions {
    /** Directory where browser recordings are written. */
    outputDir: string;
}
/** @internal Exposed for tests so they can reset state between cases. */
export declare function __resetRecordingStateForTests(): void;
/** @internal Exposed for tests. */
export declare function __isRecordingActive(): boolean;
/**
 * Create opt-in browser recording tools bound to a browser.
 *
 * These tools are alpha and are only exposed when a browser provider or caller
 * explicitly enables recording and provides a safe output directory.
 */
export declare function createBrowserRecordingTools(browser: MastraBrowser, options: BrowserRecordingOptions): {
    browser_record: import("../../tools").Tool<{
        action: "status" | "start" | "stop";
        maxDurationMs?: number | undefined;
        everyNthFrame?: number | undefined;
        maxWidth?: number | undefined;
        maxHeight?: number | undefined;
        outputPath?: string | undefined;
    }, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "browser_record", unknown>;
    browser_record_caption: import("../../tools").Tool<{
        text: string;
        durationMs?: number | undefined;
    }, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "browser_record_caption", unknown>;
};
//# sourceMappingURL=tools.d.ts.map