import type { SummaryLength } from "@steipete/summarize-core";
import type { ExtractedLinkContent } from "../../../content/index.js";
import type { SummaryStreamHandler } from "../../../engine/events.js";
import type { SlideExtractionResult, SlideImage, SlideSourceKind } from "../../../slides/index.js";
import type { StreamOutputMode } from "../../stream-output.js";
export { createSlidesSummaryStreamHandler } from "./slides-output-stream.js";
export type SlidesTerminalOutput = {
    onSlidesExtracted: (slides: SlideExtractionResult) => void;
    onSlidesDone: (result: {
        ok: boolean;
        error?: string | null;
    }) => void;
    onSlideChunk: (chunk: {
        slide: SlideImage;
        meta: {
            slidesDir: string;
            sourceUrl: string;
            sourceId: string;
            sourceKind: SlideSourceKind;
            ocrAvailable: boolean;
        };
    }) => void;
    streamHandler: SummaryStreamHandler;
    renderFromText: (summary: string) => Promise<void>;
};
export declare function createSlidesTerminalOutput({ io, flags, extracted, slides, enabled, outputMode, clearProgressForStdout, restoreProgressAfterStdout, onProgressText, }: {
    io: {
        env: Record<string, string | undefined>;
        envForRun: Record<string, string | undefined>;
        stdout: NodeJS.WritableStream;
        stderr: NodeJS.WritableStream;
    };
    flags: {
        plain: boolean;
        lengthArg: {
            kind: "preset";
            preset: SummaryLength;
        } | {
            kind: "chars";
            maxCharacters: number;
        };
        slidesDebug?: boolean;
    };
    extracted: ExtractedLinkContent;
    slides: SlideExtractionResult | null | undefined;
    enabled: boolean;
    outputMode?: StreamOutputMode | null;
    clearProgressForStdout: () => void;
    restoreProgressAfterStdout?: (() => void) | null;
    onProgressText?: ((text: string) => void) | null;
}): SlidesTerminalOutput | null;
