/**
 * gen-html 실행 단계를 나누어 공유하기 위한 타입 선언이다.
 * artifact 생성, preview 반영, history finalization이 서로의 내부 구현에 과도하게 의존하지 않도록 분리한다.
 */
import type { ActionContext } from '../../../platform/actions/shared';
import type { ParsedFigmaAddress } from '../../../platform/core/helpers';
import type { AIServiceType, ParsedCliArgs, PromptAssetSet, PromptOptimizationAudit, SessionActionRecord, SessionActionStatus, StoragePaths, TraceLogger } from '../../../platform/types/index';
import type { GenHtmlComponentInput } from '../domain/types';
import type { LocalServerRuntimeInfo, LocalServerSetupInfo } from '../infrastructure/local-server/paths';
import type { StorybookMcpEnsureResult } from '../infrastructure/storybook-mcp';
export type ParsedGenHtmlReference = {
    description: string;
    figmaAddress: string;
    figmaSource: ParsedFigmaAddress;
};
export type GenHtmlComponentExecutionOptions = {
    /** 외부에서 현재 AI 작업을 ESC와 동일하게 취소하기 위한 AbortSignal */
    abortSignal?: AbortSignal;
    component: GenHtmlComponentInput;
    context?: ActionContext;
    forceStreamOutput?: boolean;
    localServerDependencies: Record<string, string>;
    /** process.stdin raw-mode/keypress 제어 여부. 백그라운드(gen-html-multiple) 호출은 false. (기본 true) */
    manageStdin?: boolean;
    onPreviewRefreshStart?: () => void;
    onStreamChunk?: (chunk: string, stream: 'stdout' | 'stderr') => void;
    openPreviewInBrowser?: boolean;
    outputPath?: string;
    parsedArgs: ParsedCliArgs;
    paths: StoragePaths;
    promptAssets?: PromptAssetSet;
    service: AIServiceType;
    status: SessionActionStatus;
    storybookMcpEnsureResult?: StorybookMcpEnsureResult;
    trace: TraceLogger;
    writeStreamOutputToTerminal?: boolean;
    writeTerminalOutput?: boolean;
};
export type GenHtmlArtifactGenerationResult = {
    blocked: boolean;
    combinedPreview: string;
    combinedStderr: string;
    combinedStdout: string;
    component: GenHtmlComponentInput;
    /** 실제 저장한 산출물 파일의 output 디렉터리 기준 상대 경로 목록 */
    generatedFiles: string[];
    generationSummary: string;
    outputPath: string;
    parsedReferences: ParsedGenHtmlReference[];
    promptAudit?: PromptOptimizationAudit;
    resolvedOutputDirectory: string;
    skipped: boolean;
    skippedExecutionSummary: string;
    storyTitlePrefix: string;
};
export type GenHtmlPreviewReconciliationResult = {
    localServerRuntime: LocalServerRuntimeInfo;
    localServerSetup: LocalServerSetupInfo;
    previewOpened: boolean;
    previewOpenSummary: string;
    previewStoryFound: boolean;
    previewStoryId: string;
    previewUrl: string;
    restartRequired: boolean;
};
export type GenHtmlComponentExecutionResult = {
    component: GenHtmlComponentInput;
    /** 실제 저장한 산출물 파일의 output 디렉터리 기준 상대 경로 목록 */
    generatedFiles: string[];
    outputPath: string;
    previewOpened: boolean;
    previewUrl: string;
    record: SessionActionRecord;
    resolvedOutputDirectory: string;
    restartRequired: boolean;
    skipped: boolean;
    stderr: string;
    stdout: string;
    storyTitlePrefix: string;
};
//# sourceMappingURL=execution-types.d.ts.map